同时运行多个线程

2022-09-04 00:40:15

大家好,对于同时运行多个线程,建议从一个类创建不同的线程对象,或者创建两个类,其中一个实现可运行,另一个实现线程,然后根据需要从这两个类创建线程对象,假设我们尝试同时运行7-10个任务。

  1. 什么是最好的解决方案?..
  2. 如果从单个类创建不同的线程对象,是否有任何陷阱或性能损失?

谢谢。提示一如既往地受到赞赏。


答案 1
  1. 看看这个伟大的包装java.util.concurrent
  2. 从单个类创建不同的线程对象不会有性能缺陷

下面是一个简短示例:

private static class SomeTask implements Runnable
{
  @Override
  public void run()
  {
    doSomething();
  }
}

public static void main(String[] args)
{
  ExecutorService executor = Executors.newCachedThreadPool();
  for (int i = 0; i < 8; i++) executor.execute(new SomeTask());
}

答案 2

我个人会选择选项(1)(创建同一类的2个不同线程)。

我不认为需要为这项工作创建2个不同的类,这些类可以由同一类的2个不同线程完成。