Java中交互方式分为同步和异步两种:
-
同步交互:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程;
-
异步交互:指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待。
区别:一个需要等待,一个不需要等待,在部分情况下,我们的项目开发中都会优先选择不需要等待的异步交互方式。 - 同步可以避免进程之间的死锁 ,读脏数据的可能性发生,一般在项目中如果存在多人或者多进程拥有权限操作同一数据时,要使用同步交互。
- 异步交互可以提高计算机执行的效率。
- 并发和并行是不同的,并发是指宏观上并行,其实不是并行,例如,多进程其实是将所有进程按时间分为一个一个的时间片,每一个时刻只执行该运行的片,时间片过期后转而执行下一个进程的时间片。
- 如下图:
|
|~~~__~~~~~__~~~~~~~~~~~~~~~~ 进程A
|
|__~~~~~~__~~~~~~~~~~~~~~~~~~ 进程B
|
|~~~~~__~~~~~~~__~~~~~~~~~~~~ 进程C
|
|______________________________时间轴 - ~~~~~部分是指此时没有在运行的进程
__部分是指占用CPU运行的进程时间片
从上图可以看出,进程B首先运行,然后当B运行结束后(时间片到)转到A,然后转到C
不过由于时间片很短,所以看起来是并行处理的,其实不是,所以叫并发,而不是并行。
其实每一个时间只运行一个进程的一片而已。
并行是如你所说的,多个程序同时运行(不过一个处理机不知道能不能支持多个进程,一般服务器采用多个处理机处理多个进程)