[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 如何检查 C/C++ 程序是否线程安全?



2012/4/18 Plain_Text <resation@gmail.com>:
>
>
>   如果有人声称他编写的 C/C++ 程序(或者程序库)是线程安全的,如何通过
> 查看源代码来检查其真实性?根据本人有限的知识,线程不安全只可能出现在全局
> 变量或者静态局部变量上。对于后者,可以通过搜索 static 来检查,而对于前者
> 似乎没有什么关键字可利用,全局变量可能分布在任何一个角落。
>
>   有无相关工具专门做这项工作?
>

只要有共享资源就有可能有数据竞争,比如如果两个线程都有可能访问或修改同一个变量(如 C++
类成员,指针参数)。需要检查所有线程中的方法或函数中对共享资源的操作是否都在关键域(critical section)内。

不清楚是否有工具能检查线程安全。

>
>
>
> --
> To UNSUBSCRIBE, email to debian-chinese-gb-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> Archive: [🔎] 20120418154535.GA2649@localhost.localdomain">http://lists.debian.org/[🔎] 20120418154535.GA2649@localhost.localdomain
>

Reply to: