@Batron например потоки можно создавать через асинхронные функции и выдавать каждой функции отдельный порт тора.
или привязать изначально к определенному номеру потока определенный порт тора.
или еще как.
@brotok вам лучше всего это составлять в конструкторе на условия функций. А там уже запись. В общем у вас буит 4 if -а только смотрите а если у вас совпадет все? При таком методе он 4 раза и запишет