【问题标题】:Printing numbers using 5 multithread使用 5 个多线程打印数字
【发布时间】:2021-02-09 09:35:26
【问题描述】:

我想使用多线程打印一个数字列表

    class RunnableWorker implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i <= 30000; i++) {
            System.out.println(Thread.currentThread().getName() + ": " + i);
        }
    }
    
}
public class RunnableFunctionalInterfaceDemo {
    public static void main(String[] args) {
        Runnable r3 = new RunnableWorker();     
        Thread t3 = new Thread(r3);
        t3.start();
    }
}

线程 1 线程 2 ...... 1 2

【问题讨论】:

  • 你的问题是什么?
  • 阅读我们的How to Ask 页面和edit 您的问题以改进它。好的问题往往会从社区中得到更快、更好的答案。

标签: java multithreading list for-loop numbers


【解决方案1】:

不确定你的问题是什么,但你只需要创建更多线程,如果这是你想要的。

 Runnable r3 = new RunnableWorker();
    Thread t0 = new Thread(r3);
    Thread t1 = new Thread(r3);
    Thread t2 = new Thread(r3);
    Thread t3 = new Thread(r3);
    Thread t4 = new Thread(r3);
    t0.start();
    t1.start();
    t2.start();
    t3.start();
    t4.start();

然而,这将为每个线程调用一个新的方法实例。

查看执行器池

class WorkerThread implements Runnable {
private String message;
public WorkerThread(String s){
    this.message=s;
}
public void run() {
    System.out.println(Thread.currentThread().getName()+" || Counter: "+message);
}

}

  import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;

    public class RunnableFunctionalInterfaceDemo {
    public static void main(String[] args) {
        ExecutorService executor = Executors.newFixedThreadPool(4);//creating a pool of 4 threads
        for (int i = 0; i < 1000; i++) {
            Runnable worker = new WorkerThread("" + i);
          executor.execute(worker);//calling execute method of ExecutorService
        }
        executor.shutdown();
    }
}

【讨论】:

  • 当我使用 0 - 30000 的全线程打印时,我想打印出来而不重复我想像这个线程 1 一样打印出来............线程 2 ......线程3............线程4............线程5 1...... ....2.................3..................4.... .............5 6..................................7........ .........8..................................9................. ..10
  • 你应该查找 Executor 线程池!
猜你喜欢
  • 2019-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多