使用Java多线程的困惑实例

原创 怼烎@ 2024-11-22 07:15 95阅读 0赞

在多线程编程中,可能会遇到一些难以理解或出现问题的场景。以下是一个简单的Java多线程困惑实例:

代码示例:

  1. public class ThreadPoolExample {
  2. private int count = 10; // 定义需要线程处理的任务数量
  3. public void startThreads() throws InterruptedException {
  4. // 创建一个固定大小的线程池
  5. ExecutorService executor = Executors.newFixedThreadPool(count);
  6. // 提交任务到线程池,每个任务是一个Runnable对象
  7. for (int i = 0; i < count; i++) {
  8. Runnable task = new WorkerThread("Task-" + i);
  9. executor.execute(task); // 将任务提交给线程池执行
  10. }
  11. // 关闭线程池释放资源
  12. executor.shutdown();
  13. }
  14. // 工作线程类
  15. private class WorkerThread implements Runnable {
  16. private String taskName;
  17. public WorkerThread(String taskName) {
  18. this.taskName = taskName;
  19. }
  20. @Override
  21. public void run() {
  22. System.out.println("Task: " + taskName);
  23. try {
  24. Thread.sleep(500); // 模拟任务执行时间
  25. } catch (InterruptedException e) {
  26. e.printStackTrace();
  27. }
  28. }
  29. }
  30. public static void main(String[] args) throws InterruptedException {
  31. ThreadPoolExample example = new ThreadPoolExample();
  32. example.startThreads(); // 启动线程池
  33. }
  34. }

在这个例子中,我们创建了一个固定大小的线程池来执行10个任务。每个任务都是一个运行时Runnable对象。

当我们在main方法中调用startThreads()时,会启动线程池,所有提交的任务都会被线程池中的线程并发处理。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,95人围观)

还没有评论,来说两句吧...

相关阅读