nScriptCheckThreads該變量存儲著腳本驗證線程的數(shù)量,最小為0贫贝,最大是16
圖片發(fā)自簡書App
/** Run an instance of the script checking thread */ void ThreadScriptCheck(); static CCheckQueue scriptcheckqueue(128); void ThreadScriptCheck() { ? RenameThread("bitcoin-scriptch"); ? scriptcheckqueue.Thread(); }
圖片發(fā)自簡書App
圖片發(fā)自簡書App
該函數(shù)的聲明和定義都在上面了虽抄。 類CScriptCheck余素,表示一個腳本驗證的關閉,這里存儲著事務的輸出
圖片發(fā)自簡書App
圖片發(fā)自簡書App
圖片發(fā)自簡書App
CCheckQueue類,排隊進行腳本的驗證磷瘤。 根據(jù)函數(shù)上下文的調用關系,可以知道搜变,驗證腳本的隊列的長度初始化為128采缚,通過調用thread函數(shù),thread函數(shù)在調用loop函數(shù)完成驗證挠他。由注釋和源碼可知扳抽,loop函數(shù)完成了腳本的驗證工作,其中Master負責統(tǒng)計結果殖侵,Worker負責執(zhí)行具體的腳本驗證 cond.wait(lock);它會在一直在阻塞等待贸呢,直到有人調用add()函數(shù)加入到隊列,才開始進行驗證拢军。