: 线程池和死锁
线 程 池: 程序可以有多个线程, 这些线程在休眠状态中需要耗费大量时间 来等待 事件发生为了简化对这些线程的管理,.NET 框架为每个 进程提供了一 个线程池, 一个线程池有若干个等待操作状态, 当一个等待操作完成 时, 线程池中的辅助线程会执行回调函数
死 锁: 常被称为死机是指两个或两个以上的进程在执行过程中, 由于 竞争 资源或者由于彼此通信而造成的一种阻塞的现象, 若无外力作用, 它 们都将无法推进下去此时称系统处于死锁状态或系统产生了死锁, 这些永远在互相等待的进程称为死锁进程
造成死锁的原因有两种:
一是: 同一时刻很多程序 (进程) 争相访问同一资源
二是: 线程对资源的访问没有按照资源占有和释放的顺序来进行避免线程 死锁进行的方法有:
1. 让线程之间具有排斥性的访问资源, 即同一时刻, 一个资源只能 被一个线程占用和使用
2. 当一个线程在某一时刻已经拥有了某个资源, 但它还继续申请另 外一个新的资源, 但该资源已经被其他线程占用, 那么就应该将 已经占有的资源进行释放, 而不是让它一直等待下去
3. 当一个线程已获得某个资源的时候, 应等到使用完这个资源(对 其释放完后), 再允许其他线程对此资源进行访问
4 . 当资源已经被某个线程占有时, 应避免所有线程循环等待同一资 源
水平有限, 多为概念介绍, 如有误, 请指出
来源: http://blog.csdn.net/mengdonghui123456/article/details/43370649