你可以使用Java中的Runnable接口来创建线程,并使用CountDownLatch进行线程同步。下面是一个示例代码:
import java.util.concurrent.CountDownLatch;
public class Main {
private static final int THREAD_COUNT = 10;
public static void main(String[] args) {
CountDownLatch latch = new CountDownLatch(THREAD_COUNT);
for (int i = 0; i < THREAD_COUNT; i++) {
Thread thread = new Thread(new MyRunnable(latch));
thread.start();
}
try {
latch.await(); // 等待所有线程完成任务
System.out.println("所有任务已完成");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
static class MyRunnable implements Runnable {
private final CountDownLatch latch;
public MyRunnable(CountDownLatch latch) {
this.latch = latch;
}
@Override
public void run() {
// 执行任务...
// 模拟任务耗时
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
latch.countDown(); // 完成任务,计数器减1
}
}
}
这段代码会创建10个线程,并使用CountDownLatch来等待这些线程完成任务。每个线程都会执行run()
方法中的任务,然后调用latch.countDown()
来通知计数器减1。当所有线程执行完任务后,latch.await()
会返回,输出"所有任务已完成"。