Java 多线程

Thread和Runnable区别多线程

  • Thread实现了Runnable接口,在执行多线程以前还分配了CPU资源,检查线程是否启动等事情,而后再执行线程。
  • Runnable适合多个相同程序代码的线程去处理同一个资源。
  • Runnable接口能够避免Java单继承的局限。
  • Runable增长了程序的健壮型,代码可以被多个线程共享,数据和代码是独立的。

线程状态线程

五种状态:建立,就绪,运行,阻塞,终止。继承

线程使用start()后不会马上启动,而是处于就绪状态,等待CPU调度后才开始。接口


进程和线程的区别进程

  • 线程在进程基础上划分。
  • 线程消失,进程还继续。进程消失,线程结束。
  • 进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。
  • 线程是进程的实体,是CPU调度和分派的基本单位,比程序更小的能独立运行的基本单位。

多线程实现的两种方式资源

  • 继承Thread
  • 实现Runnable接口

线程启动开发

经过start()方法完成,须要进行CPU调度,调用start()其实是run()方法。it


线程终止基础

  • stop(),容易有问题,已通过时
  • volatile变量看成控制条件,控制线程执行。
  • interrupt来使处于sleep() wait()等状态的线程终止。
  • 用Future的cancel方法也能够终止线程。

多线程中建议使用Runnable接口实现,这样能够避免由单继承所带来的开发局限,使用Runnable接口能够达到资源共享的目的。变量

相关文章
相关标签/搜索