实现Runable接口比继承Thread类所具有的优势
2017-04-06 22:20
387 查看
科普一下:
进程:每一个进程都会有独立的代码以及数据存储空间,进程间的切换开销比较大,一个进程包含1-n个线程。
线程:同一类线程共享一段代码,以及数据的存储空间,线程间的切换开销小。
线程的5个阶段:创建、就绪、运行、阻塞、终止
多线程的运行实际上就是通过Thread类的start方法来执行的。
线程的优先级:
优先级分别为1-10,最高为10,最低为1,默认分配的为5。
Thread.setPriority()和Thread.getPriority()分别用于设置线程优先级和获得线程的优先级。
线程的睡眠:
Thread.sleep(time),使线程处于阻塞状态,休眠结束后,线程又会重新处于就绪状态。
线程的等待:
wait()导致线程的等待,直到其他线程调用,该对象的notify()或者是notifyAll()
join()
等待该线程终止,这个方法往往在主线程等待子线程处理之后,再执行。
为什么使用join()?
往往主线程生产并启动子线程,子线程处理一大段耗时的运算,主线程会先于子线程结束,但是很多的情况下,主线程的运行确实需要子线程运行之后的结果,这种情况下,就必须主线程在运行完了后,再结束,这时就用到了join()方法。
sleep()、yield()线程方法的区别:
线程对象执行sleep()的时候,线程在规定的时间内肯定是由运行状态转到阻塞状态的;而yield()方法,线程会由执行状态变成一个可执行的状态,绝对不是阻塞、等待的状态,会把一部分CPU资源让给同等优先级的可运行状态线程。
程序中,如果一个高优先级的线程没有sleep方法,那么低优先级的线程只能等到高优先级的线程运行结束以后,才可以得到运行的机会。
进程:每一个进程都会有独立的代码以及数据存储空间,进程间的切换开销比较大,一个进程包含1-n个线程。
线程:同一类线程共享一段代码,以及数据的存储空间,线程间的切换开销小。
线程的5个阶段:创建、就绪、运行、阻塞、终止
1、适合多个相同的程序代码的线程去处理同一个资源 2、可以避免Java中的单继承的限制 3、增加程序的健壮性,代码可以被多个线程共享,代码和数据独立
多线程的运行实际上就是通过Thread类的start方法来执行的。
线程的优先级:
优先级分别为1-10,最高为10,最低为1,默认分配的为5。
Thread.setPriority()和Thread.getPriority()分别用于设置线程优先级和获得线程的优先级。
线程的睡眠:
Thread.sleep(time),使线程处于阻塞状态,休眠结束后,线程又会重新处于就绪状态。
线程的等待:
wait()导致线程的等待,直到其他线程调用,该对象的notify()或者是notifyAll()
join()
等待该线程终止,这个方法往往在主线程等待子线程处理之后,再执行。
为什么使用join()?
往往主线程生产并启动子线程,子线程处理一大段耗时的运算,主线程会先于子线程结束,但是很多的情况下,主线程的运行确实需要子线程运行之后的结果,这种情况下,就必须主线程在运行完了后,再结束,这时就用到了join()方法。
sleep()、yield()线程方法的区别:
线程对象执行sleep()的时候,线程在规定的时间内肯定是由运行状态转到阻塞状态的;而yield()方法,线程会由执行状态变成一个可执行的状态,绝对不是阻塞、等待的状态,会把一部分CPU资源让给同等优先级的可运行状态线程。
程序中,如果一个高优先级的线程没有sleep方法,那么低优先级的线程只能等到高优先级的线程运行结束以后,才可以得到运行的机会。
相关文章推荐
- 实现Runnable接口比继承Thread类所具有的优势
- java多线程编程中实现Runnable接口方法相对于继承Thread方法的优势
- 对Thread类的继承、Runable接口的实现,以及线程池的简单理解
- java两种启动线程方法根本不同,Thread继承和实现Runable接口
- 【Java多线程学习】Java多线程的两种实现方式:继承Thread类 & 实现Runable接口
- 线程实现Runnable接口比继承Thread的优势
- java 实现runnable接口与继承Thread类相比的优势
- 继承Thread和实现Runable接口的区别
- 线程:创建线程有两种方式,一种是继承Thread类,另一种是实现Runnable接口。代码如下:
- java多线程学习1-继承Thread类和实现Runnable接口来创建线程
- Java中继承thread类与实现Runnable接口的区别
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- 实现多线程有两种方法: Thread类继承和Runnable接口实现
- Java中继承thread类与实现Runnable接口的区别
- 在java编程时,线程创建实现Runnable接口与继承Thread类的不同
- Java中继承thread类与实现Runnable接口的区别
- Java中继承thread类与实现Runnable接口的不同之处
- JAVA中创建线程对象的两种方法:继承Thread和实现Runable
- 一道小测试题,一个线程既实现了Runnable接口又继承Thread方法
- java创建多线程的两种方法(继承Thread类/实现Runnable接口)