JAVA多執行緒之 volatile關鍵字

2021-07-29 12:39:09 字數 1048 閱讀 2657

概要

public

class

mythread

implements

runnable

@override

public

void

run()

system.out.println("終止執行。。。。。");

}public

static

void

main(string args) throws interruptedexception

}

**執行結果:

可以看到設定了isrunning為false。程式並沒有退出。這說明t1執行緒讀取的是自身的記憶體變數。不是主記憶體。

volatile具有可見性,但不具有原子性

volatile只能讓多個執行緒之間具有可見性,並不能具有原子性。示例:

public

class

mythread

extends

thread

system.out.println(count);

}@override

public

void

run()

public

static

void

main(string args) throws interruptedexception

for(int i = 0; i < 10; i++) }}

執行結果:

2000

4236

5305

5638

6638

3000

8152

2000

9059

8433

JAVA多執行緒之 執行緒池

執行緒池顧名思義,就是乙個放置執行緒的池子。就跟資料庫連線池差不多。執行緒池通過對併發執行緒的控制,能有效的節省系統資源的浪費,提高系統的效能。學習執行緒池,先了解一下執行緒池的乙個基本結構 executor是乙個介面,其中只有乙個方法,就是execute方法。所以executor實際就是乙個執行緒...

Java多執行緒之執行緒安全

當多個執行緒訪問某乙個類 物件或方法時 這個類始終都能表現出正確的行為,那麼這個類 物件或方法 就是執行緒安全的。public class mythread extends thread public static void main string args 結果如下 t1正在執行 4 t1正在執行...

java 多執行緒 之 Excutor

excutor介面 提供了一種將任務提交和任務執行機制相分離的方法 excutorservice介面 提供了excutor的管理介面,以及可為跟蹤乙個或多個非同步任務狀態而生成future的方法 scheduledexcutorservice介面 提供了可以安排在給定的延遲後執行或定時執行的命令 方...