Thread-Per-message Pattern
----這個工作交給你了
上司把文件交給下屬,指示:“能幫我傳真這份文件嗎?”。將一份工作拜託別人去做是件很平常的事情。拜託別人:“這個工作交給你了”以後,就回來繼續做自己的事情。
在這個程序中,我們大體描述一下範例程序的作用,相信讀者腦海裏能很快浮現程序的具體實現。共有三個角色,即三個類,main類會委託Host顯示文字。Host會啓動一個線程,來處理這項委託的工作。啓動的線程,會使用helper類實際進行顯示操作。
對於這個模式,我覺得最主要是要知道它有什麼益處以及在什麼場合下適用。
首先,很明顯,他能提升響應性,降低延遲時間。
這裏的host對於client端(main類)的響應性會提高,延遲時間會下降。尤其是當handl(helper類)的操作很花時間的時候,尤其是handl的操作需要等待輸出入操作(I/O)時,效果特別明顯。但是不可忽視的一點是,這個模式中需要啓動線程,要知道啓動線程也是需要時間的,所以這是一個魚與熊掌不可兼得的關係,看設計人怎麼權衡了。
其次,這個操作適合操作順序無所謂的時候,且不需要返回值的時候。
最後,我覺得最實用的一點是應用在服務器的製作上。爲了使服務器可以處理多數請求,可以使用這個模式。客戶端送達的請求,由主線程來接受。而實際處理該請求,則交給其他線程來負責,服務器的主線程繼續回到等待其他客戶端請求的狀態。