1
Thread runnableInst = new Runnable(){  public void run(){}};

Thread thread1 = new Thread(runnableInst);
Thread thread2 = new Thread(runnableInst);

thread1.start();
thread2.start();

在同一个 Object runnableInst 上启动两个线程可以吗?

做这样的设计好不好?

4

4 回答 4

2

是的,您可以这样做,但需要注意的一点是,两个线程都将访问runnableInst. 因此,您必须确保在必要时同步访问。

于 2012-05-11T12:46:19.560 回答
1

这样做没有问题。但是,如果您计划调度大量并行任务,则可能需要开始使用ExecutorServiceAPI。

于 2012-05-11T12:45:07.967 回答
0

这确实是可能的。在大多数情况下,我认为这不是好的或好的设计。我喜欢将 Runnable 实例视为一段孤立的代码,它只通过定义明确、安全的方式与其他线程共享数据。

于 2012-05-11T12:49:32.913 回答
0

在同一个 Object runnableInst 上启动两个线程可以吗?

是的,可以在同一个 Object runnableInst 上启动两个线程。

做这种设计好不好——这取决于用例。例如,如果没有与共享资源上的读/写相关的内容,那么这是一个很好的设计。

于 2015-06-08T18:05:21.553 回答