【发布时间】:2020-07-16 01:02:18
【问题描述】:
public void doSomething(){
Object[] a = new Object[5];
for(int i=0;i<5;i++) a[i] = executorService.submit(callable[i]).get();
}
这个线程安全吗?
谢谢
【问题讨论】:
-
a只能被一个线程访问。 -
为什么说
a被两个线程访问了? -
@JohannesKuhn @Joni executorService 正在产生新线程,不是吗?这里共有 5 个线程访问
a -
不,
get会阻塞,然后你的线程将结果分配到a数组中。 -
什么是
callable[i]?目前,这些新线程都没有使用a,也没有使用a[i]。
标签: java