你可以使用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()
会返回,输出"所有任务已完成"。