Java 清除可运行对象的ArrayList时会发生什么?

Java 清除可运行对象的ArrayList时会发生什么?,java,Java,假设您有一个实现Runnable接口的对象的ArrayList。如果调用ArrayList.clear(),这些对象会发生什么情况?他们会完成run()方法吗 这是线程安全操作吗?如果没有,什么是线程安全的替代方案?调用对它包含的对象没有任何影响。它只是删除对这些对象的引用。它不是线程安全操作,因为ArrayList不是线程安全集合 您可以在更改ArrayList(synchronized或其中一个实现)的状态时使用适当的锁定,可以使用包装ArrayList,也可以切换到线程安全集合,例如。调用

假设您有一个实现
Runnable
接口的对象的
ArrayList
。如果调用
ArrayList.clear()
,这些对象会发生什么情况?他们会完成
run()
方法吗

这是线程安全操作吗?如果没有,什么是线程安全的替代方案?

调用对它包含的对象没有任何影响。它只是删除对这些对象的引用。它不是线程安全操作,因为
ArrayList
不是线程安全集合

您可以在更改
ArrayList
synchronized
或其中一个实现)的状态时使用适当的锁定,可以使用包装
ArrayList
,也可以切换到线程安全集合,例如。

调用对其包含的对象没有任何影响。它只是删除对这些对象的引用。它不是线程安全操作,因为
ArrayList
不是线程安全集合


您可以在更改
ArrayList
synchronized
或其中一个实现)的状态时使用适当的锁定,也可以使用包装
ArrayList
,或者切换到线程安全集合,例如。

为什么不尝试一下,看看会发生什么?提示:垃圾收集器什么时候认为对象适合删除?为什么不试试看会发生什么?提示:垃圾收集器什么时候认为对象适合删除?谢谢你直截了当的回答。谢谢你直截了当的回答。