多线程04-线程创建第二种
2022/2/5 23:18:59
本文主要是介绍多线程04-线程创建第二种,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
创建多线程的第二种方式:实现Runnable接口
采用java.lang.Runnable也是一种非常建的一种,我们只要重写run方法即可
步骤如下;
1定义Runnable接口的实现类,并重写该接口的run方法,该run方法的方法体同样是该线程的执行体
2创建Runable实现类实例,在创建Thread对象,构造方法传递Runnable接口的实现类对象(并以此实例作为Thread的target来创建Thread对象),该Thread对象才是真正的线程对象
3调用线程对象的start方法启动线程
7.继承Thread类和实现Runnable接口的区别
实现Runnable接口创建多线程程序的好处:
1避免了单继承的局限性
一个类只能继承一个类(一个人只能有一个亲爹),类继承了Thread就不能继承其他类了
实现了Runnable接口,还可以继承其他类,实现其他的接口
2增强了程序的扩展性,降低了程序的耦合性
实现Runnable接口的方式,把设置线程任务和开启新线程进行了分离
实现类中,重写run方法用来设置线程任务,创建Thread类对象,调用start方法开启新线程
首先,创建Runnable接口的实现类RunnableImp1:
package demo04Thread2; //1创建Runnable接口的实现类 public class RunnableImp1 implements Runnable { //2在实现类中重写Runnable接口的run方法 @Override public void run() { for (int i = 0; i <20 ; i++) { System.out.println(Thread.currentThread().getName()+"---"+i); } } }
在创建一个实现类RunnableImp2,开启不同的任务:
package demo04Thread2; //1创建Runnable接口的实现类 public class RunnableImp2 implements Runnable { //2在实现类中重写Runnable接口的run方法 @Override public void run() { for (int i = 0; i <20 ; i++) { System.out.println("HellowWorld!"); } } }
再创建demRunnable类:
package demo04Thread2; public class demRunnable { public static void main(String[] args) { //3创建一个Runnable接口的实现类对象 RunnableImp1 run=new RunnableImp1(); //4创建Thread类对象,构造方法中传递Runnable接口的实现类对象 Thread m=new Thread(run);//打印线程名称 m.start(); //设置线程任务和开启新线程进行分离,传递不同的实现类,实现不同的任务 Thread t=new Thread(new RunnableImp2());//打印HellowWorld //5.调用Thread类中start方法,开启新线程run方法 t.start(); for (int i = 0; i <20 ; i++) { System.out.println(Thread.currentThread().getName()+"---"+i); } } }
结果:
这篇关于多线程04-线程创建第二种的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现