进程和线程的区别?同步异步的区别?并行和并发的区别

如题所述

同步(synchronous)就是协同步调,按预定的先后次序进行运行。如:你说完,我再说。
“同”字从字面上容易理解为一起动作,其实不然,“同”字应是指协同、协助、互相配合。能表示前者意义的是“并发”。
那么异步就与同步相反,就像两个人走路,每个人按照自己的节奏走,步伐不一定要一致。
同步/异步这对概念其实在不同的领域有不同的含义。
在多线程的领域,其实只有同步的概念,当两个或两个以上的线程共享某些资源或需要相互配合来完成某些工作时,就必须通过线程同步来协调各个线程运行的次序。
比如在线程a和b配合工作时,a执行到一定程度时要依靠b的某个结果,于是停下来,示意b运行;b依言执行,再将结果给a;a再继续操作。或者当线程a和b共享一个资源时,如果同一时间读写这个资源,就会发生资源竞争的问题,这时就只能允许某个时间点只有一个线程占有资源,另外一个线程等待,这也是线程同步。
而在过程调用以及访问服务器的领域,这里的异步是指在调用一个过程或请求服务器的服务时,调用/请求方的调用/请求可以在调用操作完成或服务器响应之前返回,做一些其他的工作,当调用完成或服务器响应时再继续与被调方/服务器的协同工作。而同步则是在调用操作完成或服务器响应之前不返回,持续地等待,以确保调用方/客户端与被调方/服务器协同一致。
另外在通信领域也有同步/异步的概念,异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,结束时有停止位。而同步就是接收端要按照发送端所发送的每个码元的起止时刻和重复频率来接收数据,两者时间上必须取得一致。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-18
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:
简而言之,一个程序至少有一个进程,一个进程至少有一个线程.
也就是说一个进程可以有很多线程。

“并行”是指无论从微观还是宏观,二者都是一起执行的,就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。
而“并发”在微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行,从宏观外来看,好像是这些进程都在执行,这就好像两个人用同一把铁锨,轮流挖坑,一小时后,两个人各挖一个小一点的坑,要想挖两个大一点得坑,一定会用两个小时。
从以上本质不难看出,“并发”执行,在多个进程存在资源冲突时,并没有从根本提高执行效率。
相似回答