posts - 262,  comments - 221,  trackbacks - 0

          不管是自己排隊的同步模式,還是等待通知的異步模式。它們終究都有一個等待的過程,在這個等待的過程中,等待者能否做別的事情,決定了它是阻塞還是非阻塞。

          ①同步的操作,如果在等待的過程不能做別的事情,它是同步+阻塞的。這個也是最常見的
          ②同步的操作,如果在等待的過程可以做別的事情,它是同步+非阻塞的。
          ③異步的操作,如果在等待的過程不能做別的事情,它是異步+阻塞的。
          ④異步的操作,如果在等待的過程可以做別的事情,它是異步+非阻塞的。這個也是最常見的

          由于通常的同步操作中,等待是通過循環來完成的,在消息沒有到來之前一直都是簡單的循環,它就是同步+阻塞的模式。在異步操作中,等待通常由監聽器,事件觸發完成。在消息沒有到來之前可以繼續做別的事情,消息到來后再切換到處理邏輯。而且這個過程通常是由多線程實現的,所以它是異步+非阻塞的模式。

          但如果主線程一直等待另外一個子線程接收到消息通知后才進行后續的操作,那么它實際上是異步+阻塞的模式。它的阻塞不是發生在子線程處理消息的過程,而是發生在等待子線程接收到通知消息的過程。


          -------------------------------------------------------------
          生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
          posted on 2010-03-10 15:36 Paul Lin 閱讀(2796) 評論(2)  編輯  收藏 所屬分類: J2SE


          FeedBack:
          # re: 【Java基礎專題】IO與文件讀寫---對同步/異步和阻塞/非阻塞的理解
          2010-03-11 13:47 | 5452
          600多人看了啊,不知道誤導了多少人。。。
          同步異步是相對概念,阻塞非阻塞是相對應的概念,這四個東西沒有必然的聯系。  回復  更多評論
            
          # re: 【Java基礎專題】IO與文件讀寫---對同步/異步和阻塞/非阻塞的理解[未登錄]
          2010-03-11 18:05 | Paul Lin
          @5452

          這不就是我文章中想闡明的觀點嗎?

          同步的情況下可以存在阻塞、非阻塞。異步的情況下也可以存在阻塞、非阻塞的讀寫。

          要不也不會出現上面列出的4種情況啦  回復  更多評論
            
          <2010年3月>
          28123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 屏东市| 广宁县| 永登县| 商水县| 宁化县| 安多县| 禄丰县| 瑞昌市| 五峰| 教育| 湾仔区| 南岸区| 台南县| 鸡西市| 合肥市| 阿拉善盟| 吉林省| 色达县| 南安市| 泗水县| 北宁市| 澳门| 清河县| 上饶市| 栾川县| 汾阳市| 吴川市| 怀仁县| 偃师市| 安西县| 盐山县| 阳春市| 志丹县| 朝阳区| 衢州市| 马山县| 宁乡县| 永兴县| 雷波县| 白水县| 喀什市|