нет, эквивалентность многопоточности и асинхронного сокета отсутствует.
попробую объяснить суть асинхронного сокета на простом примере.
подходите вы к лотку купить минералки, а её нет, но продавщица сообщает, что скоро привезут.
возможные варианты вашего ответа:
1) "я подожду" - синхронный сокет, программа ожидает, пока не придёт сообщение.
1.5) "долго не везут что-то, надоело ждать, ухожу" - синхронный сокет с таймаутом
2) "ну ладно, я попозже загляну" - асинхронный сокет, программа не ждёт сообщения и занимается своими делами дальше
2.5) "я вернулся, ну как, привезли? да? ну вот и отлично, забираю" - асинхронный сокет, очередная попытка приёма данных, на этот раз успешная
3) "алё, Вован, я стою минералку жду, вернусь попозже, работай, не отвлекайся" - синхронный сокет + многопоточность. один поток ожидает приёма данных, другой поток работает
3.5) "Вован, тут минералки ещё нет, ща вернусь" - многопоточность + асинхронные сокеты. несколько потоков работают одновременно, на приеме данных не блокируются