Java线程调度和优先级
在各种线程中,Java虚拟机必须实现一个有优先权的,基于优先级的调度程序。每一个线程都会有一个优先级级别,优先级可以被开发人员设定。Java虚拟机和下层的操作系统的约定是操作系统必须选择最高优先级的线程执行。所以说Java实现了一个基于优先级的调度程序。当一个更高优先级的线程到来时,原低优先的线程会被抢占。thread.setPriority(int leval) 设定优先级。
创建线程类
1.继承thread类
2.实现Runnable接口
Thread.yield() :暂停一下该线程,把cpu让给其他线程先执行。
线程池
线程池是一个线程管理中枢。每次创建和销毁线程都是消耗很多资源的事情,线程池会预先创建一批线程,若有新的请求,则分配一个线程,线程执行完后还给线程池。线程池可以节约系统资源,提升工作效率。
sleep()和wait()的区别
sleep不让锁,wait让锁。
sleep来自Thread类,wait来自Object类。
sleep需要捕获异常,wait不需要
网友评论