当谈到Java线程和并发的世界时,我相当天真.我目前正在努力学习.我做了一个简单的例子来试图弄清楚并发是如何工作的.
这是我的代码:
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadedService { private ExecutorService exec; /** * @param delegate * @param poolSize */ public ThreadedService(int poolSize) { if (poolSize < 1) { this.exec = Executors.newCachedThreadPool(); } else { this.exec = Executors.newFixedThreadPool(poolSize); } } public void add(final String str) { exec.execute(new Runnable() { public void run() { System.out.println(str); } }); } public static void main(String args[]) { ThreadedService t = new ThreadedService(25); for (int i = 0; i < 100; i++) { t.add("ADD: " + i); } } }
我需要做什么才能使代码按顺序打印出数字0-99?
线程池通常用于不需要同步或高度并行的操作.
顺序打印数字0-99不是并发问题,需要同步线程以避免乱序打印.
我建议您查看Java并发课程,以了解Java中的并发性.