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 笨笨 閱讀(3228) 評論(0)  編輯  收藏 所屬分類: J2EEALLJ2SE
          主站蜘蛛池模板: 包头市| 醴陵市| 浮梁县| 刚察县| 金沙县| 三河市| 上林县| 若尔盖县| 康平县| 弋阳县| 桑植县| 柳州市| 曲松县| 康马县| 惠东县| 彭泽县| 金沙县| 柳江县| 长垣县| 烟台市| 阿勒泰市| 安多县| 宜阳县| 马公市| 江安县| 邵武市| 柞水县| 永泰县| 嘉义市| 建水县| 泊头市| 宜章县| 托克逊县| 耒阳市| 嘉峪关市| 育儿| 孟连| 红桥区| 馆陶县| 敖汉旗| 宁武县|