|
|
1
7
接近。它是线程安全的,但不是因为局部变量。然而,自从
如果string是一个可变类,那么它就不一定是线程安全的。
是的,这是可能的。但是,它需要某种形式的同步才能正确。使用锁是一种选择。 不幸的是,的确如此。锁防止 此代码 从两个不同的线程模拟调用。实际上,您正在使“name”的这种特定用法成为线程安全的。但是,如果在程序的其他地方使用了“name”,那么在锁中使用时,它仍然有可能被其他函数修改。这可能会导致一个微妙的比赛条件。
这就是不可变类型发挥作用的地方——它们消除了所有这些担忧,因为它们的状态一旦创建就无法更改。任何人都可以使用它们,并构造更多,而不会给类型本身带来风险。 |
|
|
2
2
本地参数是按值传递的,因此总是创建值/引用的副本,而不是 裁判 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
SpeakX · 多线程上下文中的弱指针未过期时更新 2 年前 |
|
USMC6072 · 在父事件处理程序中调用异步方法会引发错误 2 年前 |
|
|
Eric · fgets_unlocked()用于多线程读取不同文件 4 年前 |