并发编程挑战:Java多线程实例

原创 ╰半夏微凉° 2024-09-27 11:18 178阅读 0赞

在Java中,多线程可以通过实现Runnable接口或继承Thread类来创建。以下是一个简单的多线程实例:

  1. 创建一个任务类(Task),该类将包含我们需要在线程中执行的操作。
  1. public class Task implements Runnable {
  2. private String taskName;
  3. private boolean isCompleted;
  4. public Task(String taskName) {
  5. this.taskName = taskName;
  6. this.isCompleted = false;
  7. }
  8. @Override
  9. public void run() {
  10. // 在这里,你可以执行任何需要在线程中运行的操作。
  11. System.out.println("Task: " + taskName + ", Starting...");
  12. try {
  13. // 模拟一个耗时的任务
  14. Thread.sleep(2000); // 2秒的延迟
  15. System.out.println(taskName + ": Completed!");
  16. isCompleted = true;
  17. } catch (InterruptedException e) {
  18. e.printStackTrace();
  19. System.out.println("Task: " + taskName + ", Interrupted.");
  20. isCompleted = true; // 任务即使中断,也认为完成
  21. }
  22. }
  23. }
  1. 创建一个线程类(ThreadExample),用于创建和启动多个线程。
  1. public class ThreadExample {
  2. public static void main(String[] args) {
  3. // 创建一个任务列表
  4. List<Task> tasks = new ArrayList<>();
  5. tasks.add(new Task("Task 1"))); // 添加第一个任务
  6. // 启动所有任务
  7. for (Task task : tasks) {
  8. new Thread(task).start(); // 创建新线程并启动
  9. }
  10. System.out.println("All threads started. Waiting for completion...");
  11. // 等待所有任务完成
  12. while (!tasks.stream().allMatch(Task::isCompleted))) {
  13. try {
  14. Thread.sleep(100); // 每秒检查一次
  15. } catch (InterruptedException e) {
  16. e.printStackTrace();
  17. }
  18. }
  19. System.out.println("All tasks completed. Exiting main().");
  20. }
  21. }

这个例子中,我们创建了一个任务类Task,并创建了一个线程类ThreadExample。在主方法中,我们创建了一个任务列表,并启动了所有任务。最后,我们在主线程中等待所有任务完成,然后退出程序。

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

发表评论

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

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

相关阅读