线程带来的风险:
1.线程安全问题
2.活跃性问题
3.性能问题
1.线程安全问题多线程环境下,多个线程共享一个资源,对资源进行读写(非原子性操作)操作
活跃性问题:
1.死锁 : 哲学家就餐问题,两个人的手上都有互相需要的资源,且都不释放
2.饥饿:线程优先级,线程争夺资源时,优先级低的可能一直无法获取资源
3.活锁:
饥饿,公平
情景:1.高优先级吞噬所有低优先级的CPU时间片
2.线程被永久堵塞在一个等待进入同步块的状态
3.等待的线程永不被唤醒
如何避免饥饿问题:1.设置合理的优先级 2.使用锁代替synchronized
性能问题
cpu为多个任务分时间片,cpu为各线程分配时间比较短 上下文切换消耗资源