同步与异步的区别

夙愿已清 提交于 2019-11-30 13:36:55

背景:当多个线程需要访问同一个资源时,需要某种顺序来确保该资源在某一时刻只能被一个线程使用,否则后果不可预料。这个时候需要对数据进行同步。同步机制能够保证资源的安全性。

同步:实现同步操作,需要获得每一个线程对象的锁,这样能确保在同一时刻只有一个线程能够进入临界区(互斥资源的代码块),其他线程需要等这个线程退出临界区,锁才能释放,等待队列中其他优先级高的线程才能获得该锁,从而进入临界区。(使用synchronize关键字来实现同步,但是会有很大的资源开销甚至出现死锁)。 实现同步操作的方法有两种:①利用同步代码块;②利用同步方法。

异步:在进程输入输出处理时,不必关心其他线程的状态或行为,也不必等待输入输出处理完毕才返回,这个时候可以进行异步编程,能够提高程序的效率。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!