執行緒被掛起。例如呼叫sleep(),執行緒被掛起,睡眠時間結束後,程式到了就緒狀態。或者join()阻塞執行緒,待子執行緒返回時,主線程再繼續執行
def
printthreadname()
:for i in
range(5
):print
("當前執行的執行緒:,執行到第次"
.format
(threadname=threading.currentthread(
).getname(
), n=i)
)mythread=threading.thread(target=printthreadname)
# 主線程和子執行緒會輪流獲得 cpu 資源
mythread.start(
)print
("主線程:"
+ threading.current_thread(
).getname())
"""執行的結果:
當前執行的執行緒:thread-1,執行到第0次
當前執行的執行緒:thread-1,執行到第1次
當前執行的執行緒:thread-1,執行到第2次
當前執行的執行緒:thread-1,執行到第3次
mainthread
當前執行的執行緒:thread-1,執行到第4次
"""#阻塞主線程
childrenthread=threading.thread(target=printthreadname)
childrenthread.start(
)childrenthread.join(
)print
("主線程:"
+ threading.current_thread(
).getname())
"""執行的結果:
當前執行的執行緒:thread-1,執行到第0次
當前執行的執行緒:thread-1,執行到第1次
當前執行的執行緒:thread-1,執行到第2次
當前執行的執行緒:thread-1,執行到第3次
當前執行的執行緒:thread-1,執行到第4次
mainthread
"""
執行緒的五種狀態
1.建立狀態,執行緒剛剛建立還未呼叫start方法。2.就緒狀態,呼叫start方法,還未搶到cpu執行權。3.執行狀態,搶到cpu執行權,執行run方法。4.阻塞狀態,包含sleep和wait 1 sleep使先執行緒處於睡眠狀態,期間讓出cpu使用權,不釋放資源。2 wait是執行緒處於等待狀態...
執行緒的五種狀態
1 新建狀態 new 當執行緒物件對建立後,即進入了新建狀態,如 thread t new mythread 2 就緒狀態 runnable 當呼叫執行緒物件的start 方法 t.start 執行緒即進入就緒狀態。處於就緒狀態的執行緒,只是說明此執行緒已經做好了準備,隨時等待cpu排程執行,並不是...
Java執行緒的五種狀態
new 乙個執行緒被建立但是沒有呼叫start方法 runnable 可執行的執行緒,即執行緒執行了start方法之後,正在執行或者正在等待某個資源 blocked 執行緒等待鎖來進入同步方法或 塊。waiting 乙個執行緒正在等待另乙個執行緒來喚醒,可能是由於呼叫了以下方法 timed wait...