不管是自己排隊(duì)的同步模式,還是等待通知的異步模式。它們終究都有一個(gè)等待的過(guò)程,在這個(gè)等待的過(guò)程中,等待者能否做別的事情,決定了它是阻塞還是非阻塞。
①同步的操作,如果在等待的過(guò)程不能做別的事情,它是同步+阻塞的。這個(gè)也是最常見(jiàn)的
②同步的操作,如果在等待的過(guò)程可以做別的事情,它是同步+非阻塞的。
③異步的操作,如果在等待的過(guò)程不能做別的事情,它是異步+阻塞的。
④異步的操作,如果在等待的過(guò)程可以做別的事情,它是異步+非阻塞的。這個(gè)也是最常見(jiàn)的
由于通常的同步操作中,等待是通過(guò)循環(huán)來(lái)完成的,在消息沒(méi)有到來(lái)之前一直都是簡(jiǎn)單的循環(huán),它就是同步+阻塞的模式。在異步操作中,等待通常由監(jiān)聽(tīng)器,事件觸發(fā)完成。在消息沒(méi)有到來(lái)之前可以繼續(xù)做別的事情,消息到來(lái)后再切換到處理邏輯。而且這個(gè)過(guò)程通常是由多線(xiàn)程實(shí)現(xiàn)的,所以它是異步+非阻塞的模式。
但如果主線(xiàn)程一直等待另外一個(gè)子線(xiàn)程接收到消息通知后才進(jìn)行后續(xù)的操作,那么它實(shí)際上是異步+阻塞的模式。它的阻塞不是發(fā)生在子線(xiàn)程處理消息的過(guò)程,而是發(fā)生在等待子線(xiàn)程接收到通知消息的過(guò)程。
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
posted on 2010-03-10 15:36
Paul Lin 閱讀(2793)
評(píng)論(2) 編輯 收藏 所屬分類(lèi):
J2SE