Java---多线程--多线程的实现

文章目录

一、多线程的实现

二、继承Thread类

三、实现Runnable接口

四、实现Callable接口

一、多线程的实现

二、继承Thread类

继承Thread类:

Thread类是java.lang包下的一个线程类,用来实现java多线程。通过继承Thread类的方式来实现多线程:

为什么要重写run()方法?

  • 因为run()是用来封装被线程执行的代码

run()方法和start()方法的区别:

  • run():封装线程执行的代码,直接调用,相当于普通方法的调用
  • start():启动线程,然后由JVM调用此线程的run()方法

Thread类中获取和设置线程名称的方法

  • setName():将此线程的名称更改为等于参数name
  • getName():返回此线程的名称
  • 设置和获取线程名称:

三、实现Runnable接口

上一种方式有一定的局限性,因为java只支持类的单继承,所以考虑通过实现Runnable接口的方式来实现多线程:

用Thread的方法:Thread.currentThread().getName()
	public class MyThread implements Runnable {
   
	
	public void run() {
   
		for(int i=0;i<100;i++) {
   
			System.out.println(Thread.currentThread().getName()+":"+i);
		
			}
		}
	}
	MyThread my = new MyThread();
		
		Thread t1 = new Thread(my,"giao哥");
		Thread t2 = new Thread(my,"giao妹");
		
		t1.start();
		t2.start();

四、实现Callable接口

上两种方式,需要重写run()方法,但是由于该方法没有返回值,因此无法从多个线程中获取返回结果。为了解决这个问题,从JDK5开始,java提供了一个Callable接口,来满足这种能创建多线程又可以有返回值的需求。
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:35
虽然不怎么光彩,经过这件事,可能我真的要去认同“面试八股文早该淘汰!不会用AI作弊的程序员=新时代文盲!”这句话了
HellowordX:Ai的出现是解放劳动力的,不是用来破坏公平竞争环境的,这样下去,轻则取消所有线上面试,严重了会影响整个行业对所有人产生影响,企业会拉高入职考核各种离谱考核会层出不穷
你找工作的时候用AI吗?
点赞 评论 收藏
分享
05-27 14:57
西北大学 golang
强大的社畜在走神:27届真不用急,可以搞点项目、竞赛再沉淀沉淀,我大二的时候还在天天打游戏呢
投递华为等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务