簡體   English   中英

DatagramSocket.send 線程安全嗎?

[英]is DatagramSocket.send thread safe?

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

謝謝!

是。 這只是本機操作系統上的一個薄層,它是線程安全的。

請參見http://www.velocityreviews.com/forums/t150685-is-datagramsocket-thread-safe.html

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

答案是肯定的,原生操作系統上的層是線程安全的。

但是,由於網絡吞吐量是有限的,如果您發送的數據包超出網絡的處理能力,一些數據包將被丟棄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM