线程不是进程,但其行为很像进程,线程是比进程更小的执行单位,一个进程在其执行过程当中,能够产生多个线程,造成多条执行线索。java
1.多线程指的是一个应用程序同时存在几个执行体,按几条不一样的执行线索共同工做的状况。多线程
2.主线程:main线程线程
3.线程的状态与生命周期rest
新建——运行——中断(四种缘由)——死亡
4.线程调度与优先级code
优先级能够经过setPriority(int grade)方法来调整
1.使用Thread类直接建立线程对象,构造方法为:对象
Thread(Runnable target)
2.目标对象与线程的关系blog
·目标对象与线程彻底解耦 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);