脚本验证线程分析

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


图片发自简书App


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


图片发自简书App


图片发自简书App


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


图片发自简书App



图片发自简书App


图片发自简书App


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //Clojure入门教程: Clojure – Functional Programming for the J...
    葡萄喃喃呓语阅读 9,234评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,803评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,252评论 18 399
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,389评论 30 472
  • 狗哭是怕狼,狼哭是怕人,人哭呢?可能是怕狼和狗都没了?慢慢地,啥都没了。 “雪狼”,皮毛珍贵,...
    Pearl绍群群阅读 4,858评论 0 1

友情链接更多精彩内容