2009-12-06 54 views

回答

2

數據不保證是有序的,如果您正在使用這些函數,則應在再次寫入之前等待回調。

(討論在ASYNC_WRITE而言,也適用於async_read

由於ASYNC_WRITE在多次調用基礎流的async_write_some功能方面實現的,這些呼叫是不是原子。每次調用都會嘗試將數據寫入流中,並有一個內部回調來處理部分操作,實際上等待完成,因爲您可能自己編寫代碼。所以如果你不等待完成,你可能會很容易地得到混合數據。

您還需要考慮線程。如果多次在流上調用async_x,最終可能會在不同線程的同一基礎流上執行併發操作,從而導致未定義的行爲。