JavaSE-20.1.5【线程的生命周期、实现多线程方式2:实现Runnable接口】

 

 

复制代码
 1 package day11.lesson1.p5;
 2 
 3 /*
 4 1.6 线程的生命周期
 5     线程一共有五种状态,线程在各种状态之间转换
 6     见五态图
 7 
 8 1.7 实现多线程方式2:实现Runnable接口
 9 
10     Thread构造方法
11         Thread(Runnable target) 分配一个新的Thread对象
12         Thread(Runnable target, String name) 分配一个新的Thread对象
13 
14     实现步骤
15         定义一个类MyRunnable实现Runnable接口
16         在MyRunnable类中重写run()方法
17         创建MyRunnable类的对象
18         创建Thread类的对象,把MyRunnable对象作为构造方法的参数
19         启动线程
20 
21     总结
22         多线程的实现方案有两种:
23             继承Thread类
24             实现Runnable接口
25         相比继承Thread类,实现Runnable接口的好处:(即推荐通过Runnable接口实现多线程)
26             避免了Java单继承的局限性;
27             适合多个相同程序的代码去处理同一个资源的情况,
28             把线程和程序的代码、数据有效分离,
29             较好的体现了面向对象的设计思想。
30  */
31 public class MyRunnable implements Runnable{
32     @Override
33     public void run() {
34         for (int i=0; i<100; i++){
35             System.out.println(Thread.currentThread().getName() + ":" + i);
36         }
37     }
38 }
39 
40 class MyRunnableDemo{
41     public static void main(String[] args) {
42         MyRunnable mr = new MyRunnable();
43 
44 //        Thread t1 = new Thread(mr);
45 //        Thread t2 = new Thread(mr);
46         //默认线程名称
47 
48         Thread t1 = new Thread(mr, "高铁");
49         Thread t2 = new Thread(mr, "飞机");
50         //自定义线程名称
51 
52         t1.start();
53         t2.start();
54     }
55 }
复制代码

 

posted @   yub4by  阅读(44)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示