原題目如下:
啟動3個線程打印遞增的數字, 線程1先打印1,2,3,4,5, 然後是線程2打印6,7,8,9,10, 然後是線程3打印11,12,13,14,15. 接著再由線程1打印16,17,18,19,20....以此類推, 直到打印到75. 程序的輸出結果應該為:
線程1: 1
線程1: 2
線程1: 3
線程1: 4
線程1: 5
線程2: 6
線程2: 7
線程2: 8
線程2: 9
線程2: 10
...
線程3: 71
線程3: 72
線程3: 73
線程3: 74
線程3: 75
對於這個問題,使用Lock和Condition來解決比較容易,
首先定義一個類,將這個數字定義到此類中,需要三個線程
來完成這個結果,所以定義一個標識來確定哪個線程進行操作,還需要定義三個方法,每個方法完成一個線程需要完成的內容,定義的類如下:
三個方法如下:
第一個方法
第二個方法:
第三個方法:
然後最後定義三個線程來調用定義的方法:
如下:
最後調用就可以打印出要求的結果。
完!