少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
           Java所有的類都具有線程的潛力,Java賦予的每個(gè)對(duì)象一個(gè)鎖,在計(jì)算機(jī)內(nèi)部工作在同一時(shí)間,只有一個(gè)對(duì)象可以持有鎖,也就是說程序在同一時(shí)間只有一個(gè)程序可以運(yùn)行,這里我把對(duì)象比作是一個(gè)小的程序。而多處理器,那么就另當(dāng)別論了。

                在這里我們首先學(xué)習(xí)一下公共方法wait,notify,notifyAll。

                wait方法可以使在當(dāng)前線程的對(duì)象等待,直到別的線程調(diào)用此對(duì)象的notify或notifyAll方法(注意:調(diào)用的是此對(duì)象的notify和notifyAll),并且當(dāng)前運(yùn)行的線程必須具有此對(duì)象的對(duì)象監(jiān)視器

          package com.abin.lee.thread.thread;

          public class CarryTask extends Thread {
           public void run() {
                  try {
                      synchronized (this) {
                          Thread t = Thread.currentThread();
                          System.out.println(t.getId() + t.getName() + ":task start, wait for notify...");
                          this.wait();
                          System.out.println(t.getId() + t.getName() + ":task continue...");
                      }
                  } catch (InterruptedException ex) {
                     System.out.println(CarryTask.class.getName());
                  }
              }


          }





          package com.abin.lee.thread.thread;

          public class CarryWait {
           public static void main(String[] args) throws InterruptedException {
            CarryTask task = new CarryTask();
            Thread t = Thread.currentThread();
            System.out.println(t.getId() + t.getName() + ":task start...");
            task.start();
            Thread.sleep(2000);
            synchronized (task) {
             System.out.println("id="+Thread.currentThread().getId()+",Name="+Thread.currentThread().getName()+",task="+task+",notify");
             task.notify();
            }
           }

          }





          http://www.iteye.com/topic/1124814
          posted on 2013-01-16 23:46 abin 閱讀(417) 評(píng)論(0)  編輯  收藏 所屬分類: JavaMultithread
          主站蜘蛛池模板: 朝阳市| 且末县| 新龙县| 库车县| 大荔县| 璧山县| 保康县| 扎兰屯市| 临澧县| 巨鹿县| 浏阳市| 阜新市| 大姚县| 南涧| 郴州市| 沙洋县| 孟州市| 金华市| 无为县| 申扎县| 蕲春县| 如东县| 布尔津县| 比如县| 石门县| 山西省| 贺州市| 霍林郭勒市| 永城市| 武邑县| 万宁市| 太原市| 唐河县| 隆德县| 武城县| 五华县| 合水县| 临清市| 安丘市| 信宜市| 台山市|