同时运行多个线程

Rex*_*exx 13 java multithreading

美好的一天,为了同时运行多个线程,建议从类创建不同的线程对象,或者创建两个类,其中一个实现runnable,一个扩展一个线程,然后根据需要创建两个线程对象,假设我们正在尝试运行同时执行7-10个任务.

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

谢谢.提示一如既往地赞赏.

Bor*_*vić 20

  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());
}
Run Code Online (Sandbox Code Playgroud)


sgo*_*les 3

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

我认为不需要为可以由同一类的两个不同线程完成的工作创建两个不同的类。