多執行緒拾遺 例題

2021-08-20 18:52:14 字數 1407 閱讀 6444

原題:

利用多執行緒迴圈列印a、b、c

思路一:

printa() printb() printc() 三個方法,對this加鎖,根據乙個flag來控制列印物件。

public

class

abcre

system.out.print("a");

flag="b";

notifyall();}}

public synchronized void printb() throws interruptedexception

system.out.print("b");

flag="c";

notifyall();}}

public synchronized void printc() throws interruptedexception

system.out.println("c");

flag="a";

notifyall();}}

public

static

void main(string args)

}class

testthreada

extends

thread

@override

public

void run() catch (interruptedexception e)

}}class

testthreadb

extends

thread

@override

public

void run() catch (interruptedexception e)

}}class

testthreadc

extends

thread

@override

public

void run() catch (interruptedexception e)

}}

思路二

三個現成,各自有各自的flag和print

public

class printabc

}class threadt extends thread

@override

public

void

run() catch (interruptedexception e)

}system.out.print(printabc.flag);

printabc.flag = nextflag;

lock.notifyall();}}

}}

原題:

實現生產者消費者模型

多執行緒設計拾遺

1 synchronized不能繼承,父類的方法是synchronized,那麼其子類過載方法中就不會繼承 同步 2 構造兩個執行緒之間實時通訊的方法分幾步 1 建立乙個pipedwriter和乙個pipedreader和它們之間的管道 pipedreader in new pipedreader ...

C 拾遺 多執行緒 C語言多執行緒的引入

c 拾遺 多執行緒 c語言多執行緒的引入 多執行緒是程式設計中的乙個重要內容。多核時代使多執行緒成為一種可能,顯然,一件事情多個人幹,效率一定會提公升。下面來看下c語言中是如何使用多執行緒的。先來看乙個例項 define crt secure no warnings include include ...

C 拾遺 多執行緒 原子操作解決執行緒衝突

c 拾遺 多執行緒 原子操作解決執行緒衝突 在多執行緒中操作全域性變數一般都會引起執行緒衝突,為了解決執行緒衝突,引入原子操作。include include include include int g count 0 void count void p sleep 100 do some work...