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

转载 2018年04月15日 22:08:15


  • 同步

     同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。  

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

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

 

  • 异步

     当一个异步过程调用发出后,调用者不会立刻得到结果。实际处理这个吊用的部件是在调用发出后,通过状态、通知来通知调用者,或通过回调函数处理这个调用。  

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

 

  • 阻塞

  阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。

 

  • 非阻塞

  指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。

        

  • 同步与阻塞

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

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

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

同步异步以及阻塞和非阻塞的区别

一、同步与异步的区别:      同步:一个服务的完成需要依赖其他服务时,只有等待被依赖的服务完成后,才算完成,这是一种可靠的服务序列。要么成功都成功,失败都失败,服务的状态可以保持一致   ...
  • wanghang88
  • wanghang88
  • 2016-07-07 09:52:48
  • 1865

理解同步/异步和阻塞/非阻塞的区别

同步/异步和阻塞/非阻塞的区别...
  • linhuaiyang
  • linhuaiyang
  • 2017-03-30 09:37:04
  • 701

java同步,异步和阻塞,非阻塞的联系和区别

http://www.iteye.com/topic/1131578#2399581 http://www.ibm.com/developerworks/cn/linux/l-async/ htt...
  • JQ_AK47
  • JQ_AK47
  • 2017-02-09 00:26:52
  • 3065

java 同步/异步IO和阻塞/非阻塞IO 关系和概念解析

java io模型,及相关同步异步,阻塞非阻塞概念解析
  • u014631304
  • u014631304
  • 2017-08-29 18:37:32
  • 122

IO模型介绍以及同步异步阻塞非阻塞的区别

阻塞:用户进程访问数据时,如果未完成IO,等待IO操作完成或者进行系统调用来判断IO是否完成非阻塞:用户进程访问数据时,会马上返回一个状态值,无论是否完成同步:用户进程发起IO(就绪判断)后,轮询内核...
  • it_man
  • it_man
  • 2014-04-22 17:17:30
  • 4762

java 同步阻塞io和异步非阻塞io

NIO 设计背后的基石:反应器模式,用于事件多路分离和分派的体系结构模式。 反应器(Reactor):用于事件多路分离和分派的体系结构模式 通常的,对一个文件描述符指定的文件或设备, 有两...
  • zshake
  • zshake
  • 2014-11-06 00:32:01
  • 979

【java】同步、异步、阻塞、非阻塞

理解同步与异步 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。  异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。    举个例子:普通...
  • lzm18064126848
  • lzm18064126848
  • 2015-09-20 11:40:45
  • 3625

5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO

5种IO模型:阻塞IO模型、非阻塞IO模型、IO复用模型、信号驱动IO模型、异步IO模型;IO模型比较:阻塞IO调用和非阻塞IO调用、阻塞IO模型和非阻塞IO模型、同步IO和异步IO...
  • tjiyu
  • tjiyu
  • 2016-10-28 20:01:41
  • 3937

【高并发编程】再谈同步、异步、阻塞、非阻塞

同步、异步、阻塞、非阻塞的概念一直是计算机学科中很重要的概念,而这种细微的差别常常被大家混淆,我自己在过一段时间后也需要复习。今天再次翻出这个概念,仍然觉得不够清晰,今天再次深入了解了这四大天王。 以...
  • xxxxxx91116
  • xxxxxx91116
  • 2016-04-24 16:13:35
  • 8224

网络编程io总结区分。阻塞,非阻塞,异步,同步

借鉴提炼自http://blog.csdn.net/historyasamirror/article/details/5778378 在网络编程中,肯定会有读写io的问题。这时候就会有了五种io模型...
  • me4weizhen
  • me4weizhen
  • 2016-08-09 16:13:52
  • 805
收藏助手
不良信息举报
您举报文章:同步和异步的区别、同步与阻塞的关系
举报原因:
原因补充:

(最多只允许输入30个字)