kapok

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

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            455 隨筆 :: 0 文章 :: 76 評(píng)論 :: 0 Trackbacks
           

          5.1 主動(dòng)對(duì)象

            那么到底什么是主動(dòng)對(duì)象呢?傳統(tǒng)上,所有的對(duì)象都是被動(dòng)的代碼段,對(duì)象中的代碼是在對(duì)它發(fā)出方法調(diào)用的線程中執(zhí)行的。也就是,調(diào)用線程(calling threads)被“借出”,以執(zhí)行被動(dòng)對(duì)象的方法。

            而主動(dòng)對(duì)象卻不一樣。這些對(duì)象持有它們自己的線程(甚或多個(gè)線程),并將這個(gè)線程用于執(zhí)行對(duì)它們的任何方法的調(diào)用。因而,如果你想象一個(gè)傳統(tǒng)對(duì)象,在里面封裝了一個(gè)線程(或多個(gè)線程),你就得到了一個(gè)主動(dòng)對(duì)象。

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

           

          posted on 2005-09-20 21:08 笨笨 閱讀(3213) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): J2EEALLJ2SE
          主站蜘蛛池模板: 大余县| 华安县| 通江县| 邳州市| 烟台市| 永康市| 丹巴县| 多伦县| 柳州市| 秦皇岛市| 广水市| 湘西| 二连浩特市| 城市| 樟树市| 上饶县| 浠水县| 琼结县| 阳朔县| 资阳市| 文山县| 华阴市| 盘锦市| 武功县| 浏阳市| 阿巴嘎旗| 无棣县| 清流县| 利津县| 巩留县| 安义县| 永平县| 淮安市| 册亨县| 松滋市| 威宁| 安图县| 芜湖市| 咸宁市| 涟源市| 越西县|