这绝对是可能和合法的。如果您
Runnable
没有状态(没有字段),那么一切都会好起来的。如果Runnable
确实具有可变状态,则可能需要使用Java的许多 互斥机制之一, 例如ReentrantLock
或synchronized
关键字。因为两个线程都将使同一Runnable
对象的字段发生变化。不,您创建并运行了两个不同的线程。他们只是打电话
Runnable.run()
。这并非超出可能性范围。我什至不会说这一定是坏习惯。您可能会做的特定情况留给读者作为练习…

这绝对是可能和合法的。如果您
Runnable没有状态(没有字段),那么一切都会好起来的。如果
Runnable确实具有可变状态,则可能需要使用Java的许多 互斥机制之一, 例如
ReentrantLock或
synchronized关键字。因为两个线程都将使同一
Runnable对象的字段发生变化。
不,您创建并运行了两个不同的线程。他们只是打电话
Runnable.run()。
这并非超出可能性范围。我什至不会说这一定是坏习惯。您可能会做的特定情况留给读者作为练习…