java 线程学习--2

来源:互联网 发布:日本文化史知乎 编辑:程序博客网 时间:2024/05/29 16:02
 1.Java的线程调度采用如下的优先级策略:

优先级高的先执行

多线程系统自动等为每个线程为每个线程分配一个优先级,默认时候,继承其父类的优先级

任务紧急的优先级较高

同优先级的线程按“先出现入”的原则。

sleep()调用允许低优先级进程运行,而yield()方法只给同优先级进程以运行机会。

2.线程的基本控制:

结束线程: 当run()结尾处返回的时,它自动消亡并不能再被运行,可以理解为自然死亡。另一种利用stop()方法强制停止,可以理解为强迫死亡。

检查线程:isAlive()获取一个线程是否还在活动状态,活动状态指示说明这个线程已经被启动,既没有运行stop(),也没有运行完run(),即没有死亡,但是不一定这个线程正在执行。

挂起线程:sleep()用于暂时停止一个线程的执行,而,这个线程不是休眠期满了后就立刻被唤醒,因为其他的线程有可能正在执行。重新调度这个睡眠的线程有可能是因为

*被唤醒的线程具有更高的优先级;

*正在执行的线程因为其他原因被堵塞

*程序处于支持时间片的系统中;

suspend()和resume():前者强制挂起线程而不指定休眠时间,运行到resume()唤醒其的睡眠。join()将引起现行线程等待,直到方法Join结束。

3.常用的方法:

currentThread()可以引用正在进行的线程


0 0
原创粉丝点击