Pli*_*tos 3 java multithreading thread-safety race-condition conditional-expressions
我想知道条件表达式是否是Java中的线程安全操作.
例如:
return (mObject != null ? mObject.toString() : "null");
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是:如果两个线程可以更改mObject,这个代码线程是安全的,还是开发人员需要处理任何竞争条件?
不,这绝对不是线程安全的.你绝对可以NullPointerException来这里.当然,它很容易修复:
Object tmp = mObject;
return tmp != null ? tmp.toString() : "null";
Run Code Online (Sandbox Code Playgroud)
或者,在这种特殊情况下更容易:
return String.valueOf(mObject);
Run Code Online (Sandbox Code Playgroud)
编辑:如评论中所述,如果你真的有两个线程竞相更新没有同步的值,那可能是更大问题的迹象......但我只是试着回答你特别提出的问题.
| 归档时间: |
|
| 查看次数: |
635 次 |
| 最近记录: |