Java多线程并发问题:示例展示
在Java中,多线程并发问题是常见的编程挑战。以下是一个简单的例子,展示可能出现的并发问题:
主线程创建两个子线程:
public class MultiThreadExample {
private final int threadCount = 2;
public void startThreads() throws InterruptedException {
// 创建线程池
ExecutorService executor = Executors.newFixedThreadPool(threadCount);
// 提交任务到线程池,每个线程会处理一个任务
for (int i = 0; i < threadCount; i++) {
Runnable worker = () -> System.out.println("Thread " + i + " is running...");
executor.execute(worker);
}
// 关闭线程池,释放资源
executor.shutdown();
}
public static void main(String[] args) throws InterruptedException {
MultiThreadExample example = new MultiThreadExample();
example.startThreads();
Thread.sleep(2000); // 暂停主线程,观察子线程执行情况
System.out.println("Main thread is exiting...");
}
}
在这个例子中,我们创建了两个子线程。主线程在startThreads()
方法中启动了这两个线程。
由于线程池的限制(当前我们设置了2个线程),所以每个线程都会等待其他的线程完成任务后才会执行自己的代码。
在main()
方法中,我们通过Thread.sleep(2000);
暂停主线程,观察子线程的执行情况。
还没有评论,来说两句吧...