|
|
1
1
是的,提供的代码(尽管有几个问题,拼写错误和更严重的问题)是线程安全的——从某种意义上说,它没有线程竞争。对于特定函数,“函数是否线程安全”的问题很少能得到回答。
代码没有线程竞争的原因很简单——整个程序中只有一个执行线程。对于修改后的问题,是的,您可以添加更多线程,这些线程将调用
|
|
|
2
0
是的,您可以添加更多线程来创建Larry/Moe/Curly。但这一行代码: Stooge*工厂::s\U原型[]={ 0,新Larry,新Moe,新Curly }; 创建Larry、Moe和Curly的实例,甚至在您从用户处获取输入之前,也不会付诸行动。但由用户输入创建的实例存储在角色中。相反,我根本不会使用s\U原型并修改make\u stooge:
|
|
|
3
-1
可能是这样;但我不敢打赌。 程序中的单个执行线程(程序永远都不是线程安全的)不会使对象线程安全;因为您可能会决定稍后添加线程。 仅读取您的s\U原型;在您所询问的函数中,但它不是常量。因此,引擎盖下可能有什么东西在改变它。最重要的是,一些东西也可能改变这些原型的实例,因为它们也不是常量。 最后,克隆不是常数;这表明它可能改变了物体中的某些东西。如果是这样的话,那么线程安全的可能性就小得多;(由于功能不可见,因此无法通过任何方式进行确认)。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |