Dij*_*tra 10 java concurrency multithreading thread-safety
我有一个方法(下面的示例),它创建一个新列表,将一些东西放入其中,并将其传递给另一个线程进行操作.
这似乎是线程安全的.该列表是创建它的方法的本地.该方法在列表上运行,并且在对其进行操作之前不会将其传递给另一个线程.
但这感觉不对,因为列表是在两个单独的线程中访问的,但它不同步.
这是可接受的线程安全代码吗?
class App
{
public static void main(String[] args)
{
final ArrayList<Integer> list = new ArrayList<Integer>();
list.add(4);
list.add(5);
final ExecutorService es = Executors.newSingleThreadExecutor();
es.execute(new Runnable() {
@Override public void run()
{
for (Integer i : list)
System.out.println(i);
}});
es.shutdown();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
698 次 |
| 最近记录: |