91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java線程代碼的實現方法

發布時間:2020-09-06 10:07:50 來源:腳本之家 閱讀:132 作者:jingxian 欄目:編程語言

一、線程Java代碼實現

1.繼承Thread

聲明Thread的子類

public class MyThread extends Thread {
 public void run(){
  System.out.println("MyThread running");
 }
}

運行thread子類的方法

MyThread myThread = new MyThread();
myTread.start();

2.創建Thread的匿名子類

Thread thread = new Thread(){
 public void run(){
  System.out.println("Thread Running");
 }
};
thread.start();

3.實現Runnable接口

聲明

public class MyThread implements Runnable {
@override
public void run() {
 System.out.println("MyThread is running");
}
}

運行

Thread thread = new Thread(new MyRunnable());
thread.start();

4.創建實現Runnable接口的匿名類

new Thread(new Runnable(){
 @override
 public void run() {
  System.out.println("Thread is running");
 }
}).start();

5.線程名字

創建時候可以給線程起名字

Thread thread = new Thread(new MyRunnable(),"name");?獲得名字
Thread thread = new Thread(new MyRunnable(),"name");
System.out.println(thraed.getName());?獲取運行當期代碼線程的名字
Thread.currentThread().getName();

二、線程安全性

1.定義

線程會共享進程范圍內的資源,同時,每個線程也會有各自的程序計數器,棧,以及局部變量。在多個線程不完全同步的情況下,多個線程執行的順序是不可預測的,那么不同的執行順序就可能帶來極其糟糕的結果。


如何定義一個類是線程安全的呢?最核心的問題在于正確性,在代碼中無需進行額外的同步或者協同操作的情況下,無論有多少個線程使用這個類,無論環境以何種方式調度多線程,這個類總能表現出正確的行為,我們就成這個類是線程安全的。

2.線程類不安全的實例

1.首先定義Count類,有私有成員count=0;

public class Count {
 private long count = 0;
 
 public long getCount() {
  return count;
 }
 
 public void service() {
  count++;
 }
}

2.然后在線程中去調用這個類的service方法

final Count count = new Count();
for (int i = 0; i < 20000; i++) {
 Thread thread3 = new Thread(){
  @Override
  public void run() {
   count.service();
   if (count.getCount() == 20000) {
    System.out.println("ahha");
   }
  }
 };
 thread3.start();
}

3.結果程序卻沒有輸出,說明最后count并沒有達到20000,為什么呢?

因為存在著以下錯誤執行的情況:線程2在線程1沒有完成count自增的情況下就讀取了count,導致最后count沒有達到20000。

Java線程代碼的實現方法

4.并發編程中,這種由于不恰當的執行順序而顯示了不正確結果的情況叫做Race Condition(競爭狀態),這種情況出現的根本原因是count的自增沒有保持原子性。count自增分三步操作,而不是一步到位。

以上這篇Java線程代碼的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长沙市| 德钦县| 辽宁省| 塔城市| 莆田市| 聊城市| 黔西| 自贡市| 陇川县| 中西区| 雷波县| 奈曼旗| 盐津县| 大庆市| 泰宁县| 沐川县| 邮箱| 磐安县| 平塘县| 台东市| 永修县| 丰顺县| 金堂县| 临泽县| 金溪县| 汉寿县| 泗洪县| 青州市| 遂溪县| 北票市| 甘肃省| 九台市| 花莲市| 余庆县| 固阳县| 遵义县| 肥西县| 定西市| 鄯善县| 衡山县| 乐都县|