*
我想问这个例子是不是 线程安全? 有点没怎么看懂, 谢谢啦
题目是说 main() 里面创建一个 全球变量
Holder h;
new Thread( h.assertSanity() );
h = new Holder(42);
所以我想题目应该是说,因为 n 不是 final type, 所以有可能后面右边 data race 更改为了 42, 然后导致exception。 个人感觉应该是这样,不过还是希望大神确认下。谢谢
你这个不知道怎么回答,根据表述是继承了Threand 但是下面第二步是通过线程类直接调用的方法,因此没有用到多线程,也就是说没有现成安全不安全一说,多线程调用的应该是run,结论是安全的
直接调用的方法,不存在安全不安全
应该还算是安全的,这种调用
线程安全的,有点钻牛角尖 了
不安全 n 变量应该加上volitate关键字
如果变量n希望每线程独立,那就得使用threadlocal,否则建议使用volitate或AtomicInteger
应该是线程安全的,这个题目应该是说在该场景下,会出现抛出异常的场景出现吧。但是就是因为抛出异常从而认为是线程安全的吧。