码迷,mamicode.com
首页 > 其他好文 > 详细

同步和异步的区别、同步与阻塞的关系

时间:2017-03-31 13:06:33      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:调用   方法   共享   状态   线程同步   编程   代码   str   输入输出   

  • 同步

       要想实现同步操作,必须要获得线程的对象锁。获得它可以保证在同一时刻只有一个线能够进入临界区,并且在这个锁被释放之前,其他的线程都不能再进入这个临界区。如果其他线程想要获得这个对象的锁,只能进入等待队列等待。只有当拥有该对象锁的线程退出临界区时,锁才会被释放,等待队列中优先级最高的线程才能获得该锁。

      实现同步的方式有两种:同步方法、同步代码块。

 

  • 异步

       由于每个线程都包含了运行时自身所需要的数据或方法,因此,在进行输入输出时,不必关系其他线程的状态或行为,也不必等到输入输出处理完毕才返回。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,异步能够提高程序的效率。

        

  • 同步与阻塞

       同步是个过程,阻塞是线程的一种状态。多个线程操作共享变量时可能会出现竞争。这时需要同步来防止两个以上的线程同时进入临界区,在这个过程中,后进入临界区的线程将阻塞,等待先进入的线程走出临界区。

  • 线程同步一定发生阻塞吗?

       线程同步不一定发生阻塞!!!线程同步的时候,需要协调推进速度,互相等待和互相唤醒会发生阻塞。

同步和异步的区别、同步与阻塞的关系

标签:调用   方法   共享   状态   线程同步   编程   代码   str   输入输出   

原文地址:http://www.cnblogs.com/jiqianqian/p/6650680.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!