Java学习(六)
第六章 多线程
优点:(1)资源得到更合理的利用;(2)程序设计更加简洁;(3)程序响应更快,运行效率更高。
缺点:(1)需要更多的内存空间来支持多支持;(2)多线程并行访问的情况可能会影响数据的准确性;(3)数据被多线程共享,可能会出现死锁的情况。
6.1 进程与线程
进程是计算机正在运行的一个独立的应用程序。
线程是组成进程的基本单位,可以完成特定的功能。
多线程是指在一个进程中不同线程插叙打印。
6.2 Java中线程的使用
Java中实现多线程的方式有:继承Thread类和Runnable接口。
-
继承Thread类
详见threadtest
-
实现Runnable接口
详见Runnable
-
线程的状态
创建状态
就绪状态
运行状态
阻塞状态
终止状态
6.3 线程的调度
-
线程休眠
注:休眠主线程需要用currentThread调动主线程的静态实例化对象
在外部调用sleep()方法时就必须处理可能抛出的异常,这里给出两种方案:(1)通过try-catch主动捕获;(2)main方法定义处抛出该异常交给JVM去处理。
-
线程合并
-
线程礼让
-
线程中断
常用方法:public void stop() /新的JDK版本中不建议使用
public void interrupt()
public void isInterrupted()
6.4 线程同步
-
线程同步的实现
多变量访问同一个数据的实现。
-
线程安全的单例模式
例:售票
-
死锁
-
重入锁
-
生产者消费模式