Java世界

          學(xué)習(xí)筆記

          常用鏈接

          統(tǒng)計(jì)

          積分與排名

          天籟村

          新華網(wǎng)

          雅虎

          最新評(píng)論

          Java線程

          多進(jìn)程:在操作系統(tǒng)中能運(yùn)行多個(gè)任務(wù)。
          多線程:在同一個(gè)應(yīng)用程序中有多個(gè)順序流執(zhí)行。
          兩者區(qū)別:進(jìn)程擁有自己完整的變量,線程則共享相同的數(shù)據(jù)。

          JVM有一個(gè)主線程,啟動(dòng)Java程序則啟動(dòng)他,并調(diào)用程序的main()方法,多線程是通過虛擬CPU實(shí)現(xiàn),通過java.lang.Thread類實(shí)現(xiàn),繼承Thread類。
          構(gòu)造方法:
          Thread()
          Thread(Runable target)
          Thread(Runable target,String name)
          啟動(dòng)線程用run()方法,自動(dòng)調(diào)用。
          start()進(jìn)入可運(yùn)行狀態(tài),通過“.”來調(diào)用。

          1.實(shí)現(xiàn)Runable接口定義唯一的run()方法。
          Class rt = new Class();
          Thread t = new Thread(rt);
          t.start();
          2.繼承Thread類。
          Thread t = new Thread();
          t.start();
          兩者的區(qū)別:
          1.Runable 可以從其他類繼承,保持程序風(fēng)格一致性。
          2.Thread 不能再?gòu)钠渌惱^承。

          結(jié)束線程:
          1.run()方法執(zhí)行完畢。
          2.拋出一個(gè)異常或錯(cuò)誤。
          3.調(diào)用一個(gè)Deprecated的stop()方法。(過時(shí))

          后臺(tái)線程為其他線程提供服務(wù),優(yōu)先級(jí)最低,級(jí)別0-10,默認(rèn)級(jí)別為5。
          如:Thread dt = new Thread();
          ??????? dt.setDaemon(true);??? //設(shè)置成后臺(tái)線程
          ??????? dt.start();

          線程控制:

          測(cè)試線程是否處于Runable狀態(tài)???isAlive()方法。

          中斷線程
          ?Thread.sleep()中斷時(shí)間以毫秒為單位。
          ?Thread.yield()放棄執(zhí)行,執(zhí)行不低于此線程的其他線程。

          設(shè)置線程的優(yōu)先級(jí)
          getPriority() 獲取
          setPriority() 設(shè)置

          對(duì)象方法
          wait()處于等待狀態(tài),等待被喚醒。
          notify()/notifyAll() 喚醒線程/所有線程。

          join()調(diào)用這個(gè)方法主線程,等待加入子線程完成。

          異常為 InterruptedException e 。

          Thread.currentThread().isAlive();?? // 獲取當(dāng)前線程是否處于Runable狀態(tài)
          Thread.currentThread().getName();? //獲取當(dāng)前線程的名字

          互斥鎖:保證共享數(shù)據(jù)的完整性。每個(gè)對(duì)象對(duì)應(yīng)一個(gè)標(biāo)記,保證在任一時(shí)刻,只能有一個(gè)線程訪問該對(duì)象,使用synchronized關(guān)鍵字修飾。放在方法、對(duì)象、塊前。
          釋放鎖用break,return或拋出exception自動(dòng)釋放;調(diào)用wait()方法將放棄擁有的對(duì)象鎖。
          如:public void method() {
          ???????????????synchronized(obj) {
          ???????????????}
          ?????????}
          ?????????等同于
          ?????????public synchronized void method() {
          ?????????}


          死鎖:兩個(gè)線程都在等待對(duì)象鎖,不可避免。

          posted on 2007-11-01 11:35 Rabbit 閱讀(227) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 清新县| 重庆市| 嘉定区| 内丘县| 麦盖提县| 宣武区| 山东省| 张家川| 盐亭县| 鹿泉市| 通州市| 三门县| 平舆县| 达州市| 辽中县| 洪江市| 商洛市| 女性| 灵武市| 通榆县| 巴彦淖尔市| 鄯善县| 吴忠市| 大邑县| 惠水县| 西平县| 吉林省| 盈江县| 石台县| 香格里拉县| 湛江市| 漳州市| 芒康县| 鹤岗市| 通山县| 乌审旗| 鹿邑县| 高陵县| 星座| 新巴尔虎右旗| 安岳县|