Java并发概念-1

一,同步 和 异步:

  同步:调用方需要等待被调用方回应之后,才能进行下一步动作。

  异步:调用方不需要等待被调用方回应,直接继续自己的动作。在未来某个时间点可能会有被调用方的回应。

  

二,并发 和 并行

  并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。

  

 

三,临界区

  每个进程中访问临界资源的那段代码称为临界区(Critical Section)(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区。

  进程进入临界区的调度原则是:

  1、如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
  2、任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
  3、进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
  4、如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
 
  
四,阻塞 和 非阻塞
  阻塞就是干不完不准回来,   
  非阻塞就是你先干,我现看看有其他事没有,完了告诉我一声
  阻塞和非阻塞通常用来形容多线程间的相互影响。比如一个线程占用了临界区资源,那么其它所有需要这个资源的线程就必须在这个临界区中进行等待,等待会导致线程挂起。这种情况就是阻塞。此时,如果占用资源的线程一直不愿意释放资源,那么其它所有阻塞在这个临界区上的线程都不能工作。

非阻塞允许多个线程同时进入临界区

  Java中BlockingQueue就是阻塞的代表类
 
  
  
posted @ 2016-04-06 22:06  嘟嘟死胖子  阅读(203)  评论(0编辑  收藏  举报