Java多线程面试图

Java多线程面试图_第1张图片

1 .只有运行状态的线程才有机会执行代码
2 .所有线程都进入终止状态,进程结束
3 .当JVM 中非精灵线程进入终止,JVM 会马上终止,垃圾收集线程就是一个精灵线程。
4. 当一个线程处在运行状态,调用yield()方法,放弃CPU,回到可运行状态。
5. t.setPriority(arg0)是设置优先级,参数是1-10 的整数,整数越大,优先级越高。但优先级高,不一定先运行,依操作系统而定(独占式操作系统可是使用,共享式操作系统       就不认优先级,所有线程都有机会获得时间片),所以只能粗略控制线程执行顺序.
6.独占式操作系统中,如果t1 进入了运行状态,t2 进入可运行状态,但 t2 的优先级高比t1 高,此时t1 会马上让出CPU,让t2 进入运行状态.
7.独占式OS 中,优先级高的线程调用yeild()方法后,还会回到运行状态,没效果

你可能感兴趣的:(Java多线程面试图)