文章目录
并发与并行
进程与线程
线程的调度
线程优先级
使用yiled方法和设置优先级最终并不能真正控制线程的调度,决定权在调度器那里。
多线程创建
多线程执行原理
Thread类常用方法
join方法,等待调用该方法的线程执行结束,才往后执行
interrupt打断
sleep的线程打断标记为false,表示为假打断,正常执行的线程被打断,该标记为true,表示为真打断,可用该标记人为决定该线程是否继续执行。
使用Runnable接口创建线程
使用Runnable的好处
多线程匿名内部类写法
FutureTask创建多线程
线程安全
线程不安全产生原因
线程不安全问题解决
线程同步
同步代码块
同步原理
同步方法
Lock锁
线程的状态
wattting状态,需要notify唤醒
sleep表示休眠,不释放锁,睡醒后不一定就能运行,需要cpu分配时间片。yiled表示礼让,表示当前线程让出cpu时间片,但是不一定成功,因为可能只存在当前一个线程的情况,这两者都可以让出cpu。
线程间通信
等待唤醒机制
生产者消费者问题
生产者
消费者