kapok

          垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            455 隨筆 :: 0 文章 :: 76 評論 :: 0 Trackbacks
           

          5.1 主動對象

            那么到底什么是主動對象呢?傳統上,所有的對象都是被動的代碼段,對象中的代碼是在對它發出方法調用的線程中執行的。也就是,調用線程(calling threads)被“借出”,以執行被動對象的方法。

            而主動對象卻不一樣。這些對象持有它們自己的線程(甚或多個線程),并將這個線程用于執行對它們的任何方法的調用。因而,如果你想象一個傳統對象,在里面封裝了一個線程(或多個線程),你就得到了一個主動對象。

            例如,設想對象“A”已在你的程序的main()函數中被實例化。當你的程序啟動時,OS創建一個線程,以從main()函數開始執行。如果你調用對象A的任何方法,該線程將“流過”那個方法,并執行其中的代碼。一旦執行完成,該線程返回調用該方法的點并繼續它的執行。但是,如果”A”是主動對象,事情就不是這樣了。在這種情況下,主線程不會被主動對象借用。相反,當”A”的方法被調用時,方法的執行發生在主動對象持有的線程中。另一種思考方法:如果調用的是被動對象的方法(常規對象),調用會阻塞(同步的);而另一方面,如果調用的是主動對象的方法,調用不會阻塞(異步的)。

           

          posted on 2005-09-20 21:08 笨笨 閱讀(3213) 評論(0)  編輯  收藏 所屬分類: J2EEALLJ2SE
          主站蜘蛛池模板: 龙陵县| 玛纳斯县| 崇仁县| 布尔津县| 九寨沟县| 涪陵区| 辽源市| 贵定县| 达拉特旗| 肥城市| 吴忠市| 汉沽区| 泰宁县| 鄂尔多斯市| 阳东县| 盐边县| 海晏县| 黔江区| 开江县| 渝北区| 沂水县| 望奎县| 若羌县| 秦安县| 聊城市| 石泉县| 绥宁县| 安庆市| 穆棱市| 乐业县| 阿瓦提县| 厦门市| 泾源县| 巨鹿县| 颍上县| 东源县| 潢川县| 金川县| 南投市| 剑川县| 家居|