线程调度
是指系统分配CPU使用权限的方式,分为协同式线程调度和抢占式线程调度
进程、线程概念
进程是应用程序的一次执行。线程是进程中一段代码的执行。
多进程作用是提升CPU的使用率。多线程作用是提升程序的使用率。
线程之间共享堆内存和方法区内存,栈内存是独立的。
线程的创建
继承Thread类重写run方法,或实现runable接口,实现run方法。
线程的生命周期
新建 就绪 阻塞 运行 消亡
线程调度
- 线程优先级
setPriority(1-10)设置优先级
优先级越高,抢占的cpu时间片会多一些 - sleep方法 interrupt方法
Thread.sleep(int time),使当前的线程进入阻塞。
t.interrupt();调用者中断休眠,进入就绪状态并且抛出异常。 - yiled方法
调用者让出cpu时间片给同优先级的线程,让出时间不可控 - join方法
调用者的线程合并到当前的线程中
线程同步
- 保证线程安全。在多线程环境下,线程间共享同一块数据,并且有修改数据的操作时,要进行线程同步。
- 线程锁,synchronized 对方法块方法,加锁:对象锁;修饰静态方法是类锁。
守护线程
- 所有用户线程消亡时就会消亡。setDaemon(true);
Timer 定时器
- Timer schedule() TimerTask