關於執行緒任務執行排序

2021-10-06 07:02:35 字數 3163 閱讀 7493

例如:有執行緒a、b、c三個執行緒,請按照a、b、c執行列印語句

/**

* @description: 執行緒池佇列形式實現,先進先出原則

* @package: com.cpo

* @classname: threadexcutorscort

* @author: cp

* @date: 2020/5/18 11:11

* @version: 1.0

*/public

class

threadexcutorscort

}

/**

* @description: 指定的執行緒加入到當前執行緒,可以將兩個交替執行的執行緒合併為順序執行的執行緒

* @package: com.cpo

* @classname: threadjoinscort

* @author: cp

* @date: 2020/5/18 10:31

* @version: 1.0

*/public

class

threadjoinscort

}class

threadjoin1

implements

runnable

}class

threadjoin2

implements

runnable

}class

threadjoin3

implements

runnable

}

/**

* @package: com.cpo

* @classname: threadflagscort

* @author: cp

* @date: 2020/5/18 11:21

* @version: 1.0

*/public

class

threadflagscort

catch

(interruptedexception e)})

.start()

;new

thread((

)->

catch

(interruptedexception e)})

.start()

;new

thread((

)->

catch

(interruptedexception e)})

.start()

;}private

int flag=1;

private

void

printa()

throws interruptedexception

system.out.

println

("a執行了");

flag=2;

this

.notifyall()

;}}private

synchronized

void

printb()

throws interruptedexception

system.out.

println

("b執行了");

flag=3;

this

.notifyall()

;}private

synchronized

void

printc()

throws interruptedexception

system.out.

println

("c執行了");

flag=1;

this

.notifyall()

;}}

/**

* @package: com.cpo

* @classname: threadlockscort

* @author: cp

* @date: 2020/5/18 11:37

* @version: 1.0

*/public

class

threadlockscort).

start()

;new

thread((

)->).

start()

;new

thread((

)->).

start()

;}private reentrantlock lock=

newreentrantlock()

;private condition ca = lock.

newcondition()

;private condition cb = lock.

newcondition()

;private condition cc = lock.

newcondition()

;private

int flag=1;

private

void

printa()

system.out.

println

("a執行了");

flag=2;

cb.signal()

;}catch

(interruptedexception e)

finally

}private

void

printb()

system.out.

println

("b執行了");

flag=3;

cc.signal()

;}catch

(interruptedexception e)

finally

}private

void

printc()

system.out.

println

("c執行了");

flag=1;

ca.signal()

;}catch

(interruptedexception e)

finally

}}

Python 定時執行執行緒 執行任務

最常用的是以下的方法。不過缺點是sleep函式堵塞了主線程,會造成無妨同時執行其他的程式。usr bin env python encoding utf 8 import time deftask print task deftimer n while true print time.strftim...

160 關於執行緒與任務

執行緒,thread,可能並不是乙個具有固定定義的概念。拋開其他的os不說,單純從freertos的資訊中看看thread究竟具有什麼屬性。這裡面有一部分關於thread的描述,其中描述到了單核mcu。在單核mcu上,某一時刻只能夠有乙個thread在執行。究竟是哪乙個執行緒在執行,這取決於核心的管...

執行緒池 任務延時執行

我在做乙個匯入功能,匯入的邏輯都是呼叫的頁面介面。介面執行邏輯 將資料儲存到資料庫,然後再呼叫job任務加工歷史資料。使用者在頁面上操作是ok的,畢竟每操作一下,介面最多呼叫一次。但是匯入就不一樣了,相當於使用者一直在對著頁面點點點 這會導致後面歷史任務的加工出現問題。在匯入的時候,我需要先讓基本資...