【摘 要】
:
如今,多核处理器发展迅猛,促使多线程的应用越来越广泛。多线程程序虽然提高了运行速度和资源利用率,但是程序中极易含有并发错误。现有的针对多线程程序的研究或工具主要集中在并发错误的检测上。然而,无论是工具检测出的错误还是错误报告中用户提交的错误,被发现后都需要程序员参与调试。调试是软件开发过程中不可或缺的一个重要环节。对于单线程程序而言,程序员可以通过设置断点或者输出日志等方式进行调试。而对多线程程序
论文部分内容阅读
如今,多核处理器发展迅猛,促使多线程的应用越来越广泛。多线程程序虽然提高了运行速度和资源利用率,但是程序中极易含有并发错误。现有的针对多线程程序的研究或工具主要集中在并发错误的检测上。然而,无论是工具检测出的错误还是错误报告中用户提交的错误,被发现后都需要程序员参与调试。调试是软件开发过程中不可或缺的一个重要环节。对于单线程程序而言,程序员可以通过设置断点或者输出日志等方式进行调试。而对多线程程序而言,这些方式都不再适用,由于线程的调度由调度器决定,存在着调度的不确定性,故而不同的线程调度可能产生不同的结果,这给多线程程序的调试带来了很大困难。因此,程序员对于可靠的多线程程序的调试技术的需求越来越迫切。为调试多线程程序,最重要的在于控制程序执行时多线程的调度,即在程序中插入控制代码。最初,程序员会在源代码中添加Thread.sleep(),这仍然是目前使用最为广泛的控制调度的方式之一。有时候,程序员也会通过在源代码中添加Object.wait()/notify()这样的代码以达到控制线程调度的目的。然而,这两种方式都存在弊端,容易造成错误的误报或者漏报。近些年,研究者提出了如ConAn、MultithreadedTC、IMunit等这类测试框架,但它们并不易于程序员使用,并且随着多线程程序的错误越来越复杂,现有的技术已经不能满足程序员的调试需求。本研究对实际项目中发生的多线程错误进行了分析,总结出四种程序员可能面临的多线程程序调试场景:基于行的一般性线程切换、控制逻辑运算符间的线程切换、控制函数调用链间的线程切换、以及控制循环相关的线程切换。为了帮助程序员对这四类多线程程序进行调试,本文定义了顺序点这一概念,以及需要满足的调度约束,提出了基于顺序点的调试技术,并设计了针对多线程程序调试场景的领域特定语言。本研究采用了字节码层面而非源代码层面的代码插桩技术,从而达到让线程按照期望的顺序调度的目的,并且对线程的调度控制更加灵活和精准。基于上述方法,本研究最终实现了一个Eclipse上的调试插件,利用自定义的类加载器筛选出需要插桩的Java类,调用ASM提供的接口在字节码层面插入不同类型的代码,并通过Java调试接口监视和控制线程的调度。该调试工具能帮助程序员进行多线程程序的调试,验证了方法的可行性。此外,本研究将之与现有工具IMunit进行了对比实验。实验结果表明,基于顺序点的调试技术有效地减少了程序员的工作量,并能拓展三类调试场景,因此该方法具有更好的实用性。
其他文献
神秘书写是二十世纪末中国当代文学创作的现象之一。叶广芩的小说立足于寻根与对现世的人文关怀,融合了传统和民间神秘文化与原始萨满万物有灵思想,溢出古朴又富哲学思辨的神秘气息。其小说的神秘性有赖于对家族、民族之根的寻找,表现出多种传统、地域神秘文化,很大程度上地将神秘书写锁定于传统文化中,同时她也受国外文化思潮的影响,使小说得到钻出传统文化框架的契机,适当地以虚构、隐喻、情感、诗性的方式追寻生存世界的非
电子邮件伴随着互联网的发展越来越普及,但是电子邮件的可靠性与安全性引起人们的重视,因为各种垃圾邮件、钓鱼岛邮件、骚然邮件极大地影响了人们的生活。同时,根据我国不良网络不垃圾信息举报受理中心的统计,有一半以上的用户因为垃圾邮件而浪费掉了大量的时间、大量的资源信息,还有一半用户因为垃圾邮件遭受到了一定的经济损失。目前被人们认可的垃圾邮件过滤技术有:身份认证、行为模式识别、和白名单和关键字过滤技术等等之
中国传统的民本思想是农耕文明的时代积淀,也是血缘亲情社会构造的独特表现。民为邦本是我国古代儒家的传统思想,主要体现在重民顺民爱民富民上。本文通过对传统民本思想及苏
在国家政策的支持下,学前教育得到了高度的重视和发展,在学前教育资源总量不断提升的同时,学前教育质量也必须得到保障。所谓教育大计,教师为本,幼儿园教师的素质是保障学前教育质量的前提条件,幼儿园教师培训作为提升幼儿园教师素质的重要途径受到了各省市的高度重视。通过幼儿园培训方式的变革和培训模式的创新来构建新型的培训模式,从而提升培训质量符合学前教育发展的需要。微课程是在当代人对碎片化学习的强烈需求下应运
目的:探讨24p3/NGAL基因介导的铁转运对缺氧诱导的肾小管上皮细胞凋亡的影响。方法:(1)用分子克隆的方法构建PcDNA3.1/24p3质粒,采用脂质体转染的方法瞬时转染小鼠胚胎成纤维
捣固车在铁路日常维修中起着非常重要的作用,捣固车的正常养护工作,保证了铁路的安全运行,所以保证捣固车处于正常工作状态显得十分必要。而在捣固车的各个构成部分中,液压系统作为捣固车作业的关键一环,为捣固车进行正常的捣固作业提供源动力。液压系统在作业过程中难免发生各种异常状况,如若不及时对液压系统故障进行诊断排除,就会导致液压系统运转异常,甚至会导致捣固车发生故障。因此,对捣固车液压系统进行故障诊断研究
本文以《通俗文艺》五日刊为研究对象,运用期刊细读的方法,对该刊中的各种故事、诗歌、常识,歌谣和鼓词、评词、弹词、金钱板等一系列旧形式的文艺作品进行细读分析,结合抗战时期大后方的通俗文艺,以期了解其区域特色和了解战时成都的作家们在创作通俗作品时,在创作意识、题材和表现手法上,所呈现出的不同程度地靠拢时代的步伐。正文分为四个部分,第一部分为绪论,分别从问题的提出及其意义,选题的研究现状以及本论文基本思
管廊设施是城市不可或缺的基础设施,本项目组开发的智慧管廊运维管理平台可以实现管廊设施的智能化管理,便于管理人员进行统一的监控和维护。由于该平台内部尚不具备应急通信功能,当发生各类紧急事件时,各职能人员难以在兼顾平台核心业务的基础上进行迅速的应急指挥交流,以及时处理险情。为此,本文以已有的智慧管廊运维管理平台为基础,给出了一种该平台即时通信模块的设计和实现方案,旨在保障应急指挥通信的实时性和安全性,
每个行政行为都包含两面,一面是程序,一面是实体。行政不作为定义深刻体现了这一点,有的学者认为,行政不作为是在行政程序上表现消极,而有的学者认为是实体结果的不能实现,反映到司法实践出现了通过法律适合性的审查或者以最终权利义务状态的变化作为标准的两种不同倾向。在依职权行政不作为领域。基于依职权行政行为要求行政机关主动行为,不再以行政相对人的申请为要件这一特征,赋予了行政机关更多的行政裁量,给司法实践的
农机安全生产是全社会安全生产的一项重要组成部分,也是国家安全生产13个重点行业之一,切实做好农机安全监管工作对预防农机事故,保障农机行业和农业农村经济稳定发展具有重要作用,必须高度重视。近年来,一方面,在国家和政府政策扶持、农业技术发展、农村劳动人口减少、农民生活水平提高等多方面因素的共同作用下,各类新型农业机械保有量快速增长,农机作业领域亦不断拓宽;另一方面,在政府简政放权、权力重心下移的改革大