并行是两个任务同时进行,而并发呢,则是一会作一个任务一会又切换作另外一个任务。并发
临界区用来表示一种公共资源或者说是共享数据,能够被多个线程使用,可是每一次,只能有一个线程使用它,一旦临界区资源被占用,其余线程要想使用这个资源,就必须等待。性能
好比一个线程占用了临界区资源,那么其它全部须要这个资源的线程就必须在这个临界区中进行等待,等待会致使线程挂起。这种状况就是阻塞。非阻塞容许多个线程同时进入临界区。阻塞的方式,通常性能不会太好。根据通常的统计,若是一个线程在操做系统层面被挂起,作了上下文切换了,一般状况须要8W个时间周期来作这个事情。spa