文章目录

一、多线程的实现

二、继承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接口,来满足这种能创建多线程又可以有返回值的需求。