關於windows執行緒的各種狀態

2022-07-19 05:54:13 字數 949 閱讀 2760

由於不同程序中的執行緒可能併發執行,因而windows支援程序間的併發性。此外,同乙個程序中的多個執行緒可以分配給不同的處理器並且同時執行。乙個含有多執行緒的程序在實現併發時,不需要使用多程序的開銷。同乙個程序中的執行緒可以通過它們的公共位址空間交換資訊,並訪問程序中的共享資源,不同程序中的執行緒可以通過在兩個程序間建立的共享記憶體交換資訊。

乙個物件導向的具體多執行緒的程序是實現伺服器應用程式的一種有效方法。

乙個現有的windows執行緒處於以下六種狀態之一:

·就緒態:可以被排程執行,微核心分流器跟蹤所有就緒程序,並按優先順序順序進行排程。

·備用態:備用執行緒已經被選擇下一次在乙個特定的處理器上執行。該執行緒在這個狀態等待,直到那個處理器可用,如果備用執行緒的優先順序足夠高,正在那個處理器上執行的執行緒可能被這個備用執行緒搶占。否則,該備用執行緒要等到正在執行的執行緒被阻塞或結束其時間片。

·執行態:一旦微核心處理執行緒或程序切換,備用執行緒將進入執行狀態並開始執行,執行過程一直持續到被搶占、時間片期滿、被阻塞或終止。在兩種情況下,它將回到就緒態。

·等待態:(1)當執行緒被乙個事件(如i/o)阻塞、(2)為了同步自願等待或者(3)乙個環境子系統指引它把自身掛起時,該程序進入等待狀態。當等待的條件滿足時,如果它的所有資源都可用,則執行緒轉到就緒態。

·轉換態:乙個執行緒在等待後,如果準備好執行但資源不可用時,進入該狀態。例如,乙個執行緒的棧被換出儲存器。當該資源可用時,執行緒進入就緒態。

·終止態:乙個執行緒可以被自己或者被另乙個執行緒終止,或者當它的父程序終止時終止。一旦完成了清理工作,該執行緒從系統中移出,或者被執行體保留,供以後重新初始化。

Windows下Zookeeper的各種問題

在windows下使用cygwin是不能直接執行zookeeper的sh系列指令碼的 解決方法 首先使用bin下的zkserver.sh建立好各種zookeeper需要的目錄 注意執行這個指令碼是不會啟動zookeeper的服務的,雖然顯示zookeeper started,which is pre...

執行緒的各種狀態轉換

阻塞 新建 就緒 執行 死亡 新建 new 到就緒 runnable start 就緒 runnable 到執行 running 得到cpu資源 執行 running 到就緒 runnable yield 或者cpu資源被占用 執行到 runnable 到阻塞 blocking 1io阻塞 2sus...

關於輪廓的各種使用

include cv.h include highgui.h include cvaux.h include cxcore.h include include using namespace std using namespace cv define pi 3.14159f void drawbox...