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