社区
C#
帖子详情
谁能用大白话帮忙解释一下同步、异步的概念,14:00之前结贴给分!
kissknife
2006-04-04 09:47:33
看了点同步套接字、异步套接字的内容,对同步、异步没有形象的概念。
诸位高手帮忙用形象的语言解释一下同步、异步,以及使用同步或异步的好处坏处,多谢!
...全文
395
12
打赏
收藏
谁能用大白话帮忙解释一下同步、异步的概念,14:00之前结贴给分!
看了点同步套接字、异步套接字的内容,对同步、异步没有形象的概念。 诸位高手帮忙用形象的语言解释一下同步、异步,以及使用同步或异步的好处坏处,多谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kissknife
2006-04-04
打赏
举报
回复
多谢几位。
以烧水为例,如果我仅有两件事可做:烧水、喝开水,这需要异步吗?
同样,以简单的socket通信来说,假设只有件事:建立连接、发送信息,这需要异步吗?
nonocast
2006-04-04
打赏
举报
回复
你可以看下我原来写的这篇文章
http://www.gameres.com/Articles/Program/Control/IOCP.htm
nonocast
2006-04-04
打赏
举报
回复
先简单的提一下同步和异步这两个概念,逻辑上来讲做完一件事后再去做另一件事就是同步,而同时一起做两件或两件以上事的话就是异步了。你也可以拿单线程和多线程来作比喻。但是我们一定要将同步和堵塞,异步和非堵塞区分开来,所谓的堵塞函数诸如accept(…),当调用此函数后,此时线程将挂起,直到操作系统来通知它,”HEY兄弟,有人连进来了”,那个挂起的线程将继续进行工作,也就符合”生产者-消费者”模型。堵塞和同步看上去有两分相似,但却是完全不同的概念。大家都知道I/O设备是个相对慢速的设备,不论打印机,调制解调器,甚至硬盘,与CPU相比都是奇慢无比的,坐下来等I/O的完成是一件不甚明智的事情,有时候数据的流动率非常惊人,把数据从你的文件服务器中以Ethernet速度搬走,其速度可能高达每秒一百万字节,如果你尝试从文件服务器中读取100KB,在用户的眼光来看几乎是瞬间完成,但是,要知道,你的线程执行这个命令,已经浪费了10个一百万次CPU周期。所以说,我们一般使用另一个线程来进行I/O。重叠IO[overlapped I/O]是Win32的一项技术,你可以要求操作系统为你传送数据,并且在传送完毕时通知你。这也就是[完成]的含义。这项技术使你的程序在I/O进行过程中仍然能够继续处理事务。事实上,操作系统内部正是以线程来完成overlapped I/O。你可以获得线程所有利益,而不需要付出什么痛苦的代价。
effun
2006-04-04
打赏
举报
回复
很简单啊,就象你烧开水,如果你站在炉子边上等水烧开再去做别的事就是同步。如果水放在炉子上以后你就去做别的事,等水开了以后会通过水壶上的汽笛通知你,这就是异步。
bearocean
2006-04-04
打赏
举报
回复
大白话是吧
简单的异步(Asynchronous)调用是这样一种调用方式:发起者请求一个异步调用,通知执行者,然后处理其他工作,在某一个同步点等待执行者的完成;执行者执行调用的实际操作,完成后通知发起者。
比如.net的Socket异步调用机制。
就是在BeginAccept的时候调用一个异步处理程序。
ice_frank
2006-04-04
打赏
举报
回复
同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果.
异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作.
kissknife
2006-04-04
打赏
举报
回复
请问它们是一般都和线程扯上关系吗?为什么?
jijl2001
2006-04-04
打赏
举报
回复
同步就是做了一件事后就得等这件事做完才能做另一件
异步就是做了一件事后可以做另一件,
runnercn
2006-04-04
打赏
举报
回复
同步就好比你是一事必躬亲的人,也即你不是一个好领导;而异步就是,你不做,但是你可以派你手下的得力干将去做,做完了回来通知你一下就可以了,也即你是一个有前途的领导。不知道这样说你名不明白。好处你也应该知道了吧。
kissknife
2006-04-04
打赏
举报
回复
多谢楼上的各位了。
effun
2006-04-04
打赏
举报
回复
喝开水当然要等到水开了才能喝,所以应该同步。当然,发送信息也必须要等到连接建立以后,因此必须是同步的。当然,你可以在等待水烧开的时候去做点别的家务,扫扫地什么的,而不是傻乎乎地看着水被烧开。
koenemy
2006-04-04
打赏
举报
回复
都不需要。
【异步并发编程】使用aiohttp构建Web应用程序
一文了解并掌握python aiohttp
手撸架构,并发编程 面试123问
并发编程的优缺点 优点: 充分利用多核CPU的计算能力:通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升 方便进行业务拆分,提升系统并发能力和性能 缺点: a.上下文切换,要存储当前状态,加载状态,耗时。 尽量不使用锁,导致竞争锁的上下文切换(CAS); 最少使用线程,避免线程浪费等待。 b.死锁,锁没法释放,导致阻塞的线程一直阻塞。 避免一个线程获得多个锁。 线程间加锁顺序尽量一致。 使用定时锁
同步
异步 指调用方法,调动
同步
,必须阻塞等待其执行
结
束,才能
前端25k+面试题及
大白话
答案整理(持续更新)
1 构造函数,实例,原型对象三者的关系 每一个构造函数都会有一个原型对象,通过构造函数的prototype指向原型对象 原型对象里也有一个属性叫做constructor ,它又重新指回了构造函数 这是构造函数和原型对象之间的相互关系 我们可以通过构造函数来创建一个实例对象 ,只要我们new了构造函数就可以产生一个实例对象,所以我们构造函数就可以指向实例对象 ,实例对象里面也有一个原型为__proto__ ,这个__proto__指向原型对象 ,并且__proto__里也有一个constructor指向构造函
轻松搞懂Java中的自旋锁
前言 在
之前
的文章《一文彻底搞懂面试中常问的各种“锁”》中介绍了Java中的各种“锁”,可能对于不是很了解这些
概念
的同学来说会觉得有点绕,所以我决定拆分出来,逐步详细的介绍一下这些锁的来龙去脉,那么这篇文章就先来会一会“自旋锁”。 正文 出现原因 在我们的程序中,如果存在着大量的互斥
同步
代码,当出现高并发的时候,系统内核态就需要不断的去挂起线程和恢复线程,频繁的此类操作会对我们系统的并发性能有一定...
2024大厂Java知识点总
结
+面试题解析,被面试官怼哭的Spring原理
要理解 CAP,首先我们要清楚,为何会有人提出 CAP?他提出 CAP 是为了解决什么问题?时间回到 1985 年,彼时,后来证明了 CAP 理论的 Lynch 教授此时给当时的 IT 界来了一记惊雷:她通过不可辩驳的证明告诉业界的工程师们,如果在一个不稳定(消息要么乱序要么丢了)的网络环境里(分布式异步模型),想始终保持数据一致是不可能的。这是个什么
概念
呢?就是她打破了那些既想提供超高质量服务,又想提供超高性能服务的技术人员的幻想。这本质是在告诉大家,在分布式系统里,需要妥协。但是,如何妥协?
C#
110,566
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章