nScriptCheckThreads该变量存储着脚本验证线程的数量,最小为0,最大是16

/** Run an instance of the script checking thread */ void ThreadScriptCheck(); static CCheckQueue scriptcheckqueue(128); void ThreadScriptCheck() { RenameThread("bitcoin-scriptch"); scriptcheckqueue.Thread(); }


该函数的声明和定义都在上面了。 类CScriptCheck,表示一个脚本验证的关闭,这里存储着事务的输出



CCheckQueue类,排队进行脚本的验证。 根据函数上下文的调用关系,可以知道,验证脚本的队列的长度初始化为128,通过调用thread函数,thread函数在调用loop函数完成验证。由注释和源码可知,loop函数完成了脚本的验证工作,其中Master负责统计结果,Worker负责执行具体的脚本验证 cond.wait(lock);它会在一直在阻塞等待,直到有人调用add()函数加入到队列,才开始进行验证。
网友评论