Thread和Runnable区别多线程
- Thread实现了Runnable接口,在执行多线程以前还分配了CPU资源,检查线程是否启动等事情,而后再执行线程。
- Runnable适合多个相同程序代码的线程去处理同一个资源。
- Runnable接口能够避免Java单继承的局限。
- Runable增长了程序的健壮型,代码可以被多个线程共享,数据和代码是独立的。
线程状态线程
五种状态:建立,就绪,运行,阻塞,终止。继承
线程使用start()后不会马上启动,而是处于就绪状态,等待CPU调度后才开始。接口
进程和线程的区别进程
- 线程在进程基础上划分。
- 线程消失,进程还继续。进程消失,线程结束。
- 进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。
- 线程是进程的实体,是CPU调度和分派的基本单位,比程序更小的能独立运行的基本单位。
多线程实现的两种方式资源
线程启动开发
经过start()方法完成,须要进行CPU调度,调用start()其实是run()方法。it
线程终止基础
- stop(),容易有问题,已通过时
- volatile变量看成控制条件,控制线程执行。
- interrupt来使处于sleep() wait()等状态的线程终止。
- 用Future的cancel方法也能够终止线程。
多线程中建议使用Runnable接口实现,这样能够避免由单继承所带来的开发局限,使用Runnable接口能够达到资源共享的目的。变量