java併發程式設計(一基本概念 執行緒基礎)

2021-07-30 07:36:48 字數 2723 閱讀 6973

提高程式效能(利用cpu多核特點【並行】、充分利用cpu的時間片【併發】)

業務上需要(例如伺服器需要接收多個請求,需要用不同執行緒處理請求)

硬體上速度達到瓶頸,目前晶元處理速度4ghz,已經停留了10年,需要從軟體方面提高處理能力。

無鎖(lock-free):

無等待(wait-free):

有關並行的2個重要定律

amdahl定律(阿姆達爾定律)

增加cpu處理器的數量並不一定能起到有效的作用 提高系統內可並行化的模組比重,合理增加並行處 理器數量,才能以最小的投入,得到最大的加速比 。

gustafson定律(古斯塔夫森)

只要有足夠的並行化,那麼加速 比和cpu個數成正比 。

執行緒是程序內的執行單元 。

}– 等待執行緒結束(join)和謙讓(yeild)

public final void join() throws interruptedexception public final synchronized

void join(long millis) throws interruptedexception

package basic;

public

class

joinmain

}public

static

void

main(string args) throws interruptedexception

}

join的本質 while (isalive())

執行緒執行完畢後, 系統會呼叫 notifyall() 。

所以不要在thread例項上使用 wait()和notify()方法 。

thread t =

new daemont();

t.setdaemon(true);

t.start();

thread high = new hightpriority();

lowpriority low = new lowpriority();

high.setpriority(thread.max_priority);

low.setpriority(thread.min_priority);

low.start();

high.start();

指定加鎖物件

public

void

run() }}

用在方法上

Java執行緒基本概念

程序 執行緒 併發執行 在作業系統中兩個比較容易混淆的概念是程序 process 和執行緒 thread 作業系統中的程序是資源的組織單位。程序有乙個包含了程式內容和資料的位址空間,以及其它的資源,包括開啟的檔案 子程序和訊號處理器等。不同程序的位址空間是互相隔離的。而執行緒表示的是程式的執行流程,...

Java基本概念 執行緒開發

一 執行緒和程序 1 程序 process 正在執行的程式 2 執行緒 thread 程序中的乙個任務,必須包含在程序中,程序是執行緒的容器 3 乙個程序中至少得包含乙個執行緒,包含乙個執行緒的程序叫單執行緒程序,包含兩個或兩個以上執行緒的程序叫多執行緒程序 4 執行緒的作用 使用多執行緒是為了讓多...

併發基本概念

先了解些併發的基本概念。程式 是資料和指令的有序集合,本身無意義,就是乙個靜態的概念。程序 是執行程式的乙個執行過程,作業系統的資源分配,是動態概念。執行緒 是程式執行過程中的確切操作的執行物件。參照物為cpu 併發指單個cpu同時處理多個執行緒任務,cpu在反覆切換任務執行緒,實際還是序列化的 並...