併發程式設計 基礎篇 二 執行緒的通知和等待

2021-10-03 18:32:40 字數 711 閱讀 3027

notify()和notifyall():喚醒被掛起的執行緒,notify()函式只會喚醒乙個在該共享變數上呼叫wait()函式的執行緒,而notify會喚醒所有共享變數上呼叫wait()方法上的執行緒.

問題:利用佇列+執行緒手寫生產者和消費者?

public class thread1 

// 生產者

static class productor implements runnable

@sneakythrows

public static void productor(linkedblockingqueuequeue)

// 空閒則生產元素

queue.add(i);

system.out.println("我在生產元素,哈哈哈");

queue.notifyall();}}

}}

// 消費者

static class consumer implements runnable

@sneakythrows

public static void consumer(linkedblockingqueuequeue)

queue.take();

system.out.println("我在消費元素,哈哈哈");

queue.notifyall();}}

}}

}

Linux環境下程式設計(二) 執行緒基礎概念

基礎概念 執行緒,有時被稱為輕量級程序 lightweight process,lwp 是程式執行流的最小單元。乙個標準的執行緒由執行緒id,當前指令指標 pc 暫存器集合和堆疊組成。經常被問到的乙個問題是 執行緒和程序有什麼區別?為什麼要有執行緒這樣乙個東西?執行緒是執行在程序上下文中的邏輯流,最...

Java併發程式設計的藝術 十二 執行緒安全

讀執行緒 thread t1 new thread new runnable start 寫執行緒 thread t2 new thread new runnable start 寫執行緒 thread t2 new thread new runnable public void run synch...

Java併發程式設計的藝術 十二 執行緒安全

讀執行緒 thread t1 new thread new runnable start 寫執行緒 thread t2 new thread new runnable start 寫執行緒 thread t2 new thread new runnable public void run synch...