肥宅自学平台_人人成为技术开发者

肥宅人只等待您,联系我们吧,曾经的巅峰是否能回来?我们正在用心服务!

java如何用thread创建多线程

 更新时间:2024-01-11 16:14:49   作者:肥宅-季波   我要评论(0)  

         在 Java 中,可以使用 Thread 类来创建和管理多线程。

首先,创建一个继承自 Thread 类的子类,并重写 run() 方法。run() 方法里面包含了线程的主要逻辑。示例如下:
  1. public class MyThread extends Thread {
  2.     @Override
  3.     public void run() {
  4.         // 线程的主要逻辑
  5.         for (int i = 0; i < 10; i++) {
  6.             System.out.println("Thread " + i);
  7.         }
  8.     }
  9. }
接下来,在需要创建线程的地方,实例化子类对象,并调用 start() 方法启动线程。示例如下:
  1. public class Main {
  2.     public static void main(String[] args) {
  3.         MyThread myThread = new MyThread();
  4.         myThread.start(); // 启动线程
  5.         // 主线程的逻辑
  6.         for (int i = 0; i < 10; i++) {
  7.             System.out.println("Main " + i);
  8.         }
  9.     }
  10. }
运行上述代码,会同时启动一个子线程和主线程,并且两个线程会交替执行各自的逻辑,输出结果可能是类似下面的样子:
  1. Main 0
  2. Thread 0
  3. Thread 1
  4. Main 1
  5. Thread 2
  6. Main 2
  7. Thread 3
  8. Main 3
  9. Thread 4
  10. Main 4
  11. Thread 5
  12. Main 5
  13. Thread 6
  14. Main 6
  15. Thread 7
  16. Main 7
  17. Thread 8
  18. Main 8
  19. Thread 9
  20. Main 9
  1. public class Main {
  2.     public static void main(String[] args) {
  3.         Thread thread1 = new Thread(new MyRunnable());
  4.         Thread thread2 = new Thread(new MyRunnable());
  5.         
  6.         thread1.start();
  7.         thread2.start();
  8.         
  9.         // 主线程的逻辑
  10.         for (int i = 0; i < 10; i++) {
  11.             System.out.println("Main Thread " + i);
  12.         }
  13.     }
  14. }
  15. class MyRunnable implements Runnable {
  16.     @Override
  17.     public void run() {
  18.         // 线程的主要逻辑
  19.         for (int i = 0; i < 10; i++) {
  20.             System.out.println("Thread " + Thread.currentThread().getId() + " " + i);
  21.         }
  22.     }
  23. }
  1. Main Thread 0
  2. Thread 10 0
  3. Thread 11 0
  4. Thread 10 1
  5. Main Thread 1
  6. Thread 10 2
  7. Thread 11 1
  8. Thread 10 3
  9. Thread 11 2
  10. Main Thread 2
  11. Thread 11 3
  12. Thread 10 4

需要注意的是,每个线程都会创建一个独立的执行栈,并且线程之间共享堆内存中的数据。因此,在多线程编程中,需要注意各个线程之间的同步问题,以避免数据不一致或竞态条件等问题的发生。

在 Java 中,你可以通过以下两种方式来向线程传递参数:

  • 使用构造函数传参:可以在实例化线程对象时通过构造函数向线程传递参数。
    1. public class Main {
    2.     public static void main(String[] args) {
    3.         Thread thread1 = new MyThread("Thread 1");
    4.         Thread thread2 = new MyThread("Thread 2");
    5.         
    6.         thread1.start();
    7.         thread2.start();
    8.     }
    9. }
    10. class MyThread extends Thread {
    11.     private String threadName;
    12.    
    13.     public MyThread(String threadName) {
    14.         this.threadName = threadName;
    15.     }
    16.    
    17.     @Override
    18.     public void run() {
    19.         System.out.println("Hello from " + threadName);
    20.     }
    21. }

    在上面的示例中,我们创建了两个 MyThread 的实例,通过构造函数将不同的线程名传递给每个线程对象。在 run() 方法中,我们使用这些传递的参数来打印出线程的问候语。

    • 在线程类内部设置参数,并提供公共的设置方法:可以在线程类内部定义一些参数,并提供公共的方法来设置参数。

"小礼物走一走,来肥宅自学平台支持我"
评论区

评论

共条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
客服中心在线客服
全心全意为平台用户服务
Copyright © 2017-2023 自学平台网站地图:去查看>
  • 肥宅人自己的自学平台
  • 人人都能成为平台讲师
  • 贡献你的力量壮大肥宅自学平台
  • 将自己的能力变现
  • 实现人生的第二职业
网址收藏平台安卓APP
微信公众号微信公众号

本站部分图片或者资源来自程序自动采集或卖家(商家)发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

肥宅自学教程网是一个主打IT视频教程、自媒体运行、摄影剪辑等内容的资源学习交流平台。