0
自從我學習了多線程概念之後,我覺得自己有點'觸發快樂',每當我需要完成一項新任務時添加線程,以及我擔心我會有點過度。使用UDP監聽端口而不會產生另一個線程
有沒有什麼辦法可以在DatagramSocket
(以java爲例)上偵聽而不創建線程並阻止它?這是普遍接受的方式,還是有更好/更標準的方式?
自從我學習了多線程概念之後,我覺得自己有點'觸發快樂',每當我需要完成一項新任務時添加線程,以及我擔心我會有點過度。使用UDP監聽端口而不會產生另一個線程
有沒有什麼辦法可以在DatagramSocket
(以java爲例)上偵聽而不創建線程並阻止它?這是普遍接受的方式,還是有更好/更標準的方式?
@Brydon Gibson:如果你不想創建一個線程,你可以使用主線程或當前線程。
但是你必須知道,使用socket.receive()方法進行偵聽時,該線程將被阻塞。我不知道這是你想做什麼。
順便說一句,你只需要一個線程來監聽你的套接字。
線程有什麼問題? :)他們是這樣的任務使用的東西 – borowis
我不是一個真正的java人,但我確信有一種方法可以使用'select'或'poll'系統調用。從簡短的網頁搜索看來,'java.nio.channels'就是要走的路。查找'DatagramChannel',它可以用一個'Selector'註冊,這樣您就可以一次等待多個通道,並且還可以實現超時。 –
@GilHamilton很酷!我想我只會採用線程方式。我只是擔心我製作了太多的Java線程,但我想這就是多線程的要點。多謝你們! –