同步和异步,阻塞和非阻塞的理解

同步和异步

同步:执行一个操作之后,等待结果,接收到结果才继续执行后续的操作。

异步:执行一个操作后,可以去执行其他的操作,然后等待通知再回来执行刚才没执行完的操作。

所谓同步,是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么,这个进程将会一直等待下去,直到收到返回信息才继续执行下去。
特点:
同步是阻塞模式;
同步是按顺序执行,执行完一个再执行下一个,需要等待,协调运行;
优缺点:
可以避免资源抢夺而出现死锁,但需要等待资源访问结束,效率低

异步则是相反,是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。
特点:
异步是非阻塞模式,无需等待;
异步是彼此独立,在等待某事件的过程中,继续做自己的事,不需要等待这一事件完成后再工作。线程也是异步实现的一个方式。
优缺点:
效率较高,但安全性较低

总结:
同步与异步是对应的,它们是线程之间的关系,两个线程之间要么是同步的,要么是异步的。

阻塞和非阻塞

阻塞:进程给CPU传达一个任务之后,一直等待CPU处理完成,然后才执行后面的操作。

非阻塞:进程给CPU传达任我后,继续处理后续的操作,隔断时间再来询问之前的操作是否完成。这样的过程其实也叫轮询。

总结:
阻塞与非阻塞是对同一个线程来说的,在某个时刻,线程要么处于阻塞,要么处于非阻塞。

你可能感兴趣的:(操作系统,同步异步,阻塞)