2013-05-11 183 views
13

我打算使用的DatagramSocket一個實例,並從不同的線程...叫其send方法UDP數據包發送到不同的客戶端。該方法是否線程安全,即從不同線程調用此方法不會產生任何麻煩/不一致/競爭條件?是DatagramSocket.send線程安全嗎?

謝謝!

回答

9

UDP保證數據報到達不變(如果有的話)。換句話說,即使發送者有多線程,也不會有交錯。這就是你需要的。你實際上並不需要線程安全。然而,與所有系統調用一樣,C send()系統調用是線程安全的,因爲它們是原子的。

+2

但它確實保證java包裝將是線程安全的?我想不是。 – turbanoff 2015-03-24 11:12:54

+0

@turbanoff包裝程序是否是線程安全的並不重要,因爲它沒有被指定爲更改任何對象中的任何狀態。 – EJP 2016-02-19 07:50:24

+0

我不明白你的論點。例如,不指定SimpleDateFormat來更改任何對象中的任何狀態。但是大家都知道 - 它不是線程安全的。 – turbanoff 2016-02-19 09:19:18

相關問題