第一章
1. 同步和异步
2. 并发和并行
3. 临界区:表示一种公共资源,可以被多个线程使用,但是每一次只能有一个线程使用它,一旦临界区资源被占用,其他线程想要使用这个资源就必须等待。
4. 阻塞和非阻塞
5. 死锁、饥饿、活锁
饥饿:某一个或者多个线程因为种种原因无法获得所需要的资源,导致一直无法执行。比如它的线程优先级可能太低。
活锁:线程互相谦让,主动将资源释放给其他线程,导致资源不断地在两个线程中跳动,而没有一个线程可以同时拿到所有资源而正常执行。
6. 并发级别
阻塞:无论是synchronized或者重入锁,都会试图在执行后续代码前,得到临界区的锁,如果得不到,线程就会被挂起等待,直到占有了所需资源为止。
无饥饿:线程之间没有优先级的存在
无障碍:不会因为临界区的问题被挂起,大家都可以进入临界区,如果一起修改共享数据就会立即对自己做的修改进行回滚
无锁:线程会不断尝试修改共享变量,如果没有冲突修改成功,程序退出,否则继续尝试修改。只要求一个线程可以在有限步内完成操作
无等待:要求所有的线程都必须在有限步内完成,这样就不会有饥饿问题
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)