Java创建线程的五种写法总结

作者:学好c语言的小王同学 时间:2023-01-10 04:39:34 

通过继承Thread类并实现run方法创建一个线程

// 定义一个Thread类,相当于一个线程的模板
class MyThread01 extends Thread {
   // 重写run方法// run方法描述的是线程要执行的具体任务@Overridepublic void run() {
       System.out.println("hello, thread.");
   }
}

// 继承Thread类并重写run方法创建一个线程

public class Thread_demo01 {
   public static void main(String[] args) {
       // 实例化一个线程对象
       MyThread01 t = new MyThread01();
       // 真正的去申请系统线程,参与CPU调度
       t.start();
   }
}

通过实现Runnable接口,并实现run方法的方法创建一个线程

// 创建一个Runnable的实现类,并实现run方法
// Runnable主要描述的是线程的任务
class MyRunnable01 implements Runnable {
   @Overridepublic void run() {
       System.out.println("hello, thread.");
   }
}
//通过继承Runnable接口并实现run方法

public class Thread_demo02 {
   public static void main(String[] args) {
       // 实例化Runnable对象
       MyRunnable01 runnable01 = new MyRunnable01();
       // 实例化线程对象并绑定任务
       Thread t = new Thread(runnable01);
       // 真正的去申请系统线程参与CPU调度
       t.start();
   }
}

通过Thread匿名内部类创建一个线程

//使用匿名内部类,来创建Thread 子类
public class demo2 {
   public static void main(String[] args) {
       Thread t=new Thread(){ //创建一个Thread子类 同时实例化出一个对象
           @Override
           public void run() {
               while (true){
                   System.out.println("hello,thread");
                   try {
                       Thread.sleep(1000);
                   } catch (InterruptedException e) {
                       e.printStackTrace();
                   }
               }
           }
       };
       t.start();
   }
}

通过Runnable匿名内部类创建一个线程

public class demo3 { //使用匿名内部类 实现Runnable接口的方法
   public static void main(String[] args) {
       Thread t=new Thread(new Runnable() {

@Override
           public void run() {
               while (true){
                   System.out.println("hello Thread");
                   try {
                       Thread.sleep(1000);
                   } catch (InterruptedException e) {
                       e.printStackTrace();
                   }
               }

}
       });
       t.start();
}
}

通过Lambda表达式的方式创建一个线程

public class demo4 { //使用 lambda 表达式
   public static void main(String[] args) {
       Thread t=new Thread(()->{
           while (true){
               System.out.println("hello,Thread");
               try {
                   Thread.sleep(1000);
               } catch (InterruptedException e) {
                   e.printStackTrace();
               }
           }

});
       t.start();
   }
}

来源:https://blog.csdn.net/weixin_59796310/article/details/126409849

标签:Java,创建,线程
0
投稿

猜你喜欢

  • UnityShader3实现彩光效果

    2021-09-02 03:48:53
  • C# 打开蓝牙设置界面的两种方法

    2021-12-22 04:51:43
  • SpringMVC源码解读之HandlerMapping - AbstractUrlHandlerMapping系列request分发

    2022-07-26 20:39:48
  • Java多线程编程之ThreadLocal线程范围内的共享变量

    2022-03-10 00:41:05
  • 详解spring security之httpSecurity使用示例

    2023-08-03 09:46:17
  • Android Retrofit原理深入探索

    2023-09-06 02:47:15
  • Android开发中的9个常见错误和解决方法

    2023-08-26 16:12:35
  • 拉钩网java笔试题分享

    2022-02-13 08:48:25
  • java垃圾回收原理之GC算法基础

    2023-10-05 16:10:09
  • 带你详细了解Java值传递和引用传递

    2023-02-19 08:42:26
  • C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法

    2023-07-15 21:35:09
  • Android startActivityForResult实例详解

    2021-07-18 00:50:33
  • 详解lambda表达式foreach性能分析

    2023-10-28 17:55:21
  • Spring Boot + Mybatis多数据源和动态数据源配置方法

    2023-02-16 17:15:31
  • C# SQLite事务操作方法分析

    2022-11-23 11:15:01
  • maven依赖版本没有按照最短路径原则生效的解决方案

    2023-04-04 20:49:09
  • MyBatis关闭一级缓存的两种方式(分注解和xml两种方式)

    2023-09-02 10:18:59
  • 初步编写IDEA\\AndroidStudio翻译插件的方法

    2022-12-14 19:30:30
  • Android 应用签名的两种方法

    2023-07-29 14:02:04
  • 自定义注解和springAOP捕获Service层异常,并处理自定义异常操作

    2023-04-04 05:26:04
  • asp之家 软件编程 m.aspxhome.com