并发

2018-07-13  本文已影响0人  lishangfu

为什么要使用并发机制?


并发中的锁

锁就是当一个线程获得对资源使用权时,该线程就拥有了该资源的锁,其他线程只能处于等待状态,当线程释放对于临界区的锁时,其他线程才能根据优先级去获取临界区资源的锁。这里需要考虑线程的安全问题,当线程A占用了资源resourceA, 并且正在等待要被线程B占用的resourceb,这里就会出现相互等待,形成死锁。那么如何去避免这种死锁问题呢,可以有如下方式:


并发与并行的比较


同步与异步


阻塞和非阻塞

阻塞和非阻塞通常用来形容多线程间的相互影响,比如一个线程占有了临界区资源,那么其他线程需要这个资源就必须进行等待该资源的释放,会导致等待的线程挂起,这种情况就是阻塞,而非阻塞就恰好相反,它强调没有一个线程可以阻塞其他线程,所有的线程都会尝试地往前运行。


临界区

临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用。但是每个线程使用时,一旦临界区资源被一个线程占有,那么其他线程必须等待。

上一篇 下一篇

猜你喜欢

热点阅读