同步与异步的区别

同步与异步

最初在理解同步异步时,想法与接触了之后是完全不同的,当时认为同步就是多个程序同时进行,异步就是不同时进行。结果果然像高中物理老师讲的那样,不要什么东西都自幻。

学了之后才发现完全”反了“,同步就是一个线程一个线程的进行请求工作,异步则是多个线程同时进行请求。

在计算机领域,同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待去,直到收到返回信息才继续执行下去;异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。


而我们平时经常讨论的同步问题多发生在多线程环境中的数据共享问题。即当多个线程需要访问同一个资源时,它们需要以某种顺序来确保该资源在某一特定时刻只能被一个线程所访问,如果使用异步,程序的运行结果将不可预料。因此,在这种情况下,就必须对数据进行同步,即限制只能有一个进程访问资源,其他线程必须等待。

大致可以用下图表示:

原文地址:https://www.cnblogs.com/yehui-mmd/p/5871986.html