麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Java > 正文

java Thread 多線程

2019-11-26 16:11:01
字體:
來源:轉載
供稿:網友

Thread 創建線程的兩種方法:

1、定義類繼承Thread類,覆寫類中的run方法,調用類對象的start方法,start方法啟動線程,調用run方法。Thread類用于描述線程;該類定義一個功能run,用于存儲線程要運行的代碼。

2、定義類實現Runnable接口,覆蓋Runnable接口中的方法,通過Thread類建立線程對象,將Runnable接口的子類對象作為實際參數傳遞給Thread類的構造函數,調用Thread類的start方法開啟線程,線程會調用Runnable接口子類中的run方法;

實現接口Runnable的方式避免了單繼承帶來的局限性;

Thread T;

T.setMaemon(true);//設置線程為后臺線程;當所有前臺線程結束后后臺線程自動結束;

T.notify();//喚醒本線程;

T.notifyAll();//喚醒全部線程;

T.interrupt();//中斷線程;

Thread.sleep(100);//暫停線程100毫秒

synchronized:默認鎖定的是本身,也可以鎖定自定義的對象;

必須要有兩個及以上的線程執行,多個線程使用同一個鎖,必須保證同步過程中只能有一個線程在運行;

判斷同步: 明確哪些代碼是需要多線程運行的代碼,明確共享數據,明確多線程運行代碼中哪些語句是操作共享數據;

class Tickets implements Runnable
{
 private int tick = 100;
 public void run() { // public synchronized void run()
  while (tick > 0) {
   synchronized (this) {
    if (tick > 0) {
     try {
      Thread.sleep(100);
     } catch (InterruptedException e) {
      e.printStackTrace();
     }
     System.out.println(this.toString() + "sale:" + tick--);
    }
   }
  }
 }

如上:tick就是共享數據,操作tick就需要在synchronized中進行操作,synchroized鎖定的就是Tickets本身;

等待喚醒機制: 在操作同步線程時,都必須要標識它們所操作線程所持有的鎖,只有同一個鎖上的被等待線程,才可以被同一個鎖上的notify喚醒,不可以對不同鎖中的線程進行了喚醒;(也即:等待和喚醒必須是同一個鎖)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊人99在线 | 国产精品三级a三级三级午夜 | 午夜影视一区二区 | 99麻豆久久久国产精品免费 | 蜜桃麻豆视频 | 极品销魂一区二区三区 | 毛片a片| 毛片视频大全 | 成人性爱视频在线观看 | 国产成人在线网站 | 91精品国产91久久久久久丝袜 | 国产精品剧情一区二区三区 | 国产精品久久久久久久久久10秀 | 久久另类视频 | 久久影院免费观看 | 国产 日韩 亚洲 欧美 | 免费一及片 | 狠狠色噜噜狠狠狠米奇9999 | 爱草在线 | 国产自在线 | 欧美成人午夜 | 久久福利小视频 | 狠狠干精品视频 | 精品一区二区亚洲 | 制服丝袜日日夜夜 | 中国女警察一级毛片视频 | 亚洲午夜在线视频 | 一级做a爱片性色毛片高清 国产精品色在线网站 | 韩国美女一区 | 正在播放91视频 | 国产精品av久久久久久久久久 | 日本一级黄色大片 | 成年人在线视频观看 | 日本欧美国产 | 国产精品久久av | 国产精品一区二区羞羞答答 | 国内精品免费一区二区2001 | 久久福利国产 | 未成年人在线观看 | 欧美在线观看视频一区二区 | 久久久久久久一区二区 |