如何验证多线程程序的正确性?如何证明多线程程序是线程安全的?

lydmc 2006-11-17 02:29:25
过程的不确定导致问题重现也不确定,无法确定Bug是否已被解决。
各位是采用什么方法验证程序的,我总感觉心里没底。
...全文
609 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aero_boy 2007-01-14
  • 打赏
  • 举报
回复
楼上说只能通过长时间的测试,这是不可靠的,多线程程序的线程安全问题有可能运行一万次只有一次出现不正确的结果,以可能每次都不正确,所以这个方法不能根本的解决问题,关键还是对问题的分析,找出竞争点,加以保护。
sunhuiNO1 2006-12-14
  • 打赏
  • 举报
回复
这个只能通过长时间的测试才能证明程序在多线程下是稳定和安全的,我们以前的多线程程序都要连续跑24个小时在多CPU的机器上。使用机器人程序测试。
  • 打赏
  • 举报
回复
我的板子是技嘉的 GA-6BXD,PCB 版本号 1.6,BIOS 更新到最新。跳线在 100MHz/5.0X,装上 2 只原装 OEM PIII500 CPU,Solt1 接口,开机能够认到 2 个 CPU,显示

INTEL 440BX CHIPSET
VCORE1=2.00V VCORE2=2.00V
INTEL PENTIUM III-MMX CPU 500MHz , 2 Processor(2)
<CPU2 ID=0636><PATCH ID=0035><CPU1 ID=0636><PATCH ID=0035>
Memory Testing... 1048576KB OK.

但是无论安装 WinNT 4.0 Win2000 Pro/Server WinXP 都不能识别 2 个 CPU,任务管理器只有 1 个,任务管理器的图表菜单中也没有每个CPU一个图表的选项。

请教这是怎么回事?
Intel_CG 2006-11-18
  • 打赏
  • 举报
回复
Intel Thread Checker能对基于Windows Thread, PThread和OpenMP的多线程程序进行动态分析, 报告本次运行是被执行的代码中的发生的和潜在的线程死锁, 共享变量访问冲突等问题.

Intel Thread Checker会对你的可执行文件插入监测代码,可能导致检测时你的程序运行较慢, 故建议加载小数据量. 如测试JPEG Viewer 时用小图象.

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧