一、概述

在JAVA中,用Thread类代表线程,所有线程对象,都必须是Thread类或者Thread类子类的实例。每个线程的任务就是执行一段顺序执行的代码,JAVA使用线程执行体来容纳这段代码

二、多线程的好处

1.充分利用CPU资源
2.简化代码模型
3.提高用户体验

三、创建多线程的两种方式

第一种, 通过继承Thread类创建线程类

1、定义一个类继承Thread类,并重写Thread类的run()方法,run()方法的方法体就是线程要完成的任务,因此把run()称为线程的执行体;

2、创建该类的实例对象,即创建了线程对象;

3、调用线程对象的start()方法来启动线程;
简述两种JAVA多线程的创建方式
1、上述的getName()方法是返回当前线程的名字,也可以通过setName()方法设置当前线程的名字;

2、当JAVA程序运行后,程序至少会创建一个主线程(自动),主线程的线程执行体不是由run()方法确定的,而是由main()方法确定的;

第二种,通过实现Runnable接口创建线程类

1、定义一个类实现Runnable接口;

2、创建该类的实例对象obj;

3、将obj作为构造器参数传入Thread类实例对象,这个对象才是真正的线程对象;

4、调用线程对象的start()方法启动该线程
简述两种JAVA多线程的创建方式
1.Runnable实现类里包含的run()方法仅仅作为线程执行体,而实际的线程对象依然是Thread实例
2.通过实现Runnable接口来实现多线程时,要获取当前线程对象只能通过Thread.currentThread()方法,而不能通过this关键字获取

四、两种创建方式的对比

通过继承Thread类实现多继承:
优点:
1.实现简单,获取当前线程,可以不用调用Thread.currentThread()方法,直接使用this也可获取当前线程
缺点:
1.线程类已经继承Thread类了,就不能再继承其他类
2.多个线程不能共享同一份资源

通过实现Runnable接口实现多线程:
优点:
1.线程类只是实现了接口,还可以继承其他类
2.适合多个线程处理同一份资源的情况
缺点:
1.通过这种方式实现多线程,相较于第一类方式,编程较复杂
2.要访问当前线程,必须调用Thread.currentThread()方法

相关文章: