2011-04-05 101 views
3

Boost asio實現了在ACE proactor上掛着的proactor設計模式。Proactor和異步寫入

我明白我們爲什麼需要異步讀取。 Hovewer,我對異步寫入感到困惑。

  1. 爲什麼我們需要的是異步寫入? 它也可以用於TCP/UDP連接嗎(可以寫入TCP/UDP套接字需要時間)?
  2. 我可以將異步讀取與同步寫入混合使用嗎?
+0

你的第二個問題對我來說並不清楚,你的意思是* mix *而不是* mess *? – 2011-04-05 16:29:13

+0

謝謝,更正 – dimba 2011-04-05 16:35:53

回答

4

1)爲什麼我們需要的是異步寫入?對於TCP/UDP連接也很有用(可以 寫入TCP/UDP套接字需要時間)?需要爲同樣的理由,異步讀取

異步寫入。當使用同步寫入操作時,呼叫會阻塞,直到所有數據傳輸完畢。由於多種原因,這是不可取的。主要是爲了在不使用顯式線程的情況下實現併發性,這是proactor design pattern的基礎。

2)我可以將異步讀取與同步寫入混合嗎?

是的,他們可以和應該混合。使用異步讀操作和同步寫操作是非常奇怪的設計。

+0

1.寫入TCP套接字,例如,長於異步寫入操作(創建緩衝區,有時候分配內存塊在寫入,排隊回調等時生效) – dimba 2011-04-05 17:15:24

+1

2.我不明白你的答案 - 應該還是不應該混合? :) – dimba 2011-04-05 17:16:19

+0

2.你能解釋爲什麼嗎? – dimba 2011-04-07 04:56:23