主要内容
线程与进程
线程不是进程,但其行为很像进程,线程是比进程更小的执行单位,一个进程在其执行过程中,可以产生多个线程,形成多条执行线索。
Java的多线程机制
1.多线程指的是一个应用程序同时存在几个执行体,按几条不同的执行线索共同工作的情况。
2.主线程:main线程
3.线程的状态与生命周期
新建——运行——中断(四种原因)——死亡
4.线程调度与优先级
优先级可以通过setPriority(int grade)方法来调整
Thread类与线程的创建
1.使用Thread类直接创建线程对象,构造方法为:
Thread(Runnable target)
2.目标对象与线程的关系
·目标对象与线程完全解耦
String name = Thread.currenThread().getName();
·目标对象组合线程(弱耦合)
Thread.currentThread();
3.关于run方法的启动次数
run方法有可能被中断
waterAmount = waterAmount-m;
线程的常用方法
1.start():启动线程
2.run():线程被调用之后的执行操作
3.sleep(int millsecond):放弃CPU资源
4.isAlive():返回状态
5.currentThread():返回使用的CPU资源
6.interrupt():吵醒休眠的线程
线程同步
机制:当一个线程使用synchronized方法时,其它线程想使用的时候必须等待。
协调同步的线程
运用wait()方法中断线程的执行,使本线程等待,暂时让出CPU的使用权。
线程联合
一个线程A在占有CPU的期间,可以让其它线程调用join()和本线程联合。
B.join();
A在运行期间联合了B。
计时器线程与守护线程
java提供了一个很方便的Timer类,该类在javax.swing包中。
计时器创建后,使用Timer类的方法start()启动计时器,使用stop()停止计时器,使用restart()重新启动计时器。
调用void setDaemon(boolean on)方法可以将自己设置成一个守护线程
thread.setDaemon(true);