使用執行緒順序列印數字

2021-09-11 16:41:02 字數 654 閱讀 4711

實現思路:要順序列印數字,首先要保證列印處於同步的語句塊中,這個可以用synchronized實現;其次,可以採用執行緒順序來保證數字順序,在for迴圈中開啟執行緒,可以保證執行緒是有序的。

package com.xicheng.bigdata;

/** * @author liubin52

* @date 2018/11/6

* @description

*/public class printsequencetest implements runnable

public printsequencetest(int max, int threadno, int threadcnt)

@override

public void run()

try catch (interruptedexception e)

}if (currentno > max)

system.out.println("thread-" + threadno + ":" + currentno);

currentno++;

lock.notifyall();}}

}public static void main(string args)

}}

3個執行緒順序列印數字

問題 啟動3個執行緒a b c,使a列印0,然後b列印1,然後c列印2,a列印3,b列印4,c列印5,依次類推。思路 每個執行緒給定乙個編號,每個執行緒判斷當前是否已經輪到自己列印 如果沒輪到,就wait等待 如果輪到,則列印當前數字,並喚醒其他執行緒。判斷是否已經輪到自己列印 每個執行緒給定乙個編...

多執行緒同步 順序列印數字 執行緒條件變數

先把條件變數函式甩出來,等待條件 int pthread cond wait pthread cond t restrict cond,pthread mutex t restric mutex 1 把呼叫執行緒放到所等待條件的執行緒列表上 2 對傳進來已經加過鎖的互斥量解鎖 3 執行緒進入休眠狀態...

順序列印多個執行緒ID

最近面試時,碰到乙個面試題,題目是有3個執行緒,順序列印這三個執行緒的執行緒id多次,例如abcabc.這樣列印。第一種方法 使用pthread cond timedwait或waitforsingleobject,超時時間到了就列印出線程id,每個執行緒設定不同的超時等待時間。main.cpp c...