进程的同步和异步

来源:互联网 发布:工期进度计划软件 编辑:程序博客网 时间:2024/04/28 08:53

Java中交互方式分为同步和异步两种:

  1. 同步交互:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程;

  2. 异步交互:指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待。
    区别:一个需要等待,一个不需要等待,在部分情况下,我们的项目开发中都会优先选择不需要等待的异步交互方式。

  3. 同步可以避免进程之间的死锁 ,读脏数据的可能性发生,一般在项目中如果存在多人或者多进程拥有权限操作同一数据时,要使用同步交互。
  4. 异步交互可以提高计算机执行的效率。
  5. 并发和并行是不同的,并发是指宏观上并行,其实不是并行,例如,多进程其实是将所有进程按时间分为一个一个的时间片,每一个时刻只执行该运行的片,时间片过期后转而执行下一个进程的时间片。
  6. 如下图:

    |
    |~~~__~~~~~__~~~~~~~~~~~~~~~~ 进程A
    |
    |__~~~~~~__~~~~~~~~~~~~~~~~~~ 进程B
    |
    |~~~~~__~~~~~~~__~~~~~~~~~~~~ 进程C
    |
    |______________________________时间轴
  7. ~~~~~部分是指此时没有在运行的进程
    __部分是指占用CPU运行的进程时间片

    从上图可以看出,进程B首先运行,然后当B运行结束后(时间片到)转到A,然后转到C
    不过由于时间片很短,所以看起来是并行处理的,其实不是,所以叫并发,而不是并行。

    其实每一个时间只运行一个进程的一片而已。
    并行是如你所说的,多个程序同时运行(不过一个处理机不知道能不能支持多个进程,一般服务器采用多个处理机处理多个进程)
0 0