15 个解决方案
#1
同步:一个线程只监听一个套接字,可以用于udp
异步: 使用io模型中的一种,如select ,event,一个线程监听多套接字
阻塞: 套接字的send recv 等操作再执行完成以前会阻塞
非阻塞: 操作不会阻塞,所以函数的返回值也不再准确
异步: 使用io模型中的一种,如select ,event,一个线程监听多套接字
阻塞: 套接字的send recv 等操作再执行完成以前会阻塞
非阻塞: 操作不会阻塞,所以函数的返回值也不再准确
#2
我的理解:
1去食堂打饭你自己去就是同步
你排队死等不打到饭不罢休而且排队过程中不做别的,是阻塞,你依然排队但是你和前后的同学说好了,算我在这排着我去干点别的事,轮到你了你再来打饭这是非阻塞
2你自己不去食堂打饭,让你同学代你打饭,打完你去吃这是异步。
区别异步和非阻塞的关键看打饭这个动作的主体是你还是他人
以上不一定完全正确,有什么不对的地方,也请其他人指正
1去食堂打饭你自己去就是同步
你排队死等不打到饭不罢休而且排队过程中不做别的,是阻塞,你依然排队但是你和前后的同学说好了,算我在这排着我去干点别的事,轮到你了你再来打饭这是非阻塞
2你自己不去食堂打饭,让你同学代你打饭,打完你去吃这是异步。
区别异步和非阻塞的关键看打饭这个动作的主体是你还是他人
以上不一定完全正确,有什么不对的地方,也请其他人指正
#3
你和女友约好下午2点约会,在去约会的路上,你们是“异步”前往约会地点,如果你先到了,那么就得“阻塞”,等待你的女友和你“同步”,才能开始约会。如果她先到了,又心高气傲,那么她就“非阻塞”的走了,你得费九牛二虎之力才有可能再约出来。
你和老婆商定下午2点去shopping,在超市里,你们先是“异步”挑选各自想买的东西,接着“同步”挑选家庭所需,然后准备结账走人,发现收银台被“阻塞”了,你把东西和卡交给老婆,让她排队结账,自己“非阻塞”的从旁边通道到停车场,开车出来等待老婆与你“同步”后,回家。
你和老婆商定下午2点去shopping,在超市里,你们先是“异步”挑选各自想买的东西,接着“同步”挑选家庭所需,然后准备结账走人,发现收银台被“阻塞”了,你把东西和卡交给老婆,让她排队结账,自己“非阻塞”的从旁边通道到停车场,开车出来等待老婆与你“同步”后,回家。
#4
楼上的有才
#5
2楼解释很恰当,3楼解释牵强
#6
三楼的还换了个身份,由女朋友到老婆了!
#7
这个比喻很恰当,因为你在等待时候,可以做别的事
这个怎么看都不是异步操作,总体感觉比喻总是怪怪的,
#8
那同步和阻塞的区别是什么呢,同步说的有点笼统!
#9
同步和阻塞没办法比较,不同的概念怎么比较。
#10
哦,那怎么我自己去打饭就算是同步了呢,你能再帮我说一下同步的概念吗,谢谢啦!
#11
其实同步异步和阻塞非阻塞都是对于多线程来说的,
同步可以理解成亲自去做一件事,从开始一直到结束。
异步来说呢,就是某一步可能会等很久,我就找个人替我做,做完了告诉我(当然包括结果了),这中间我还可以做别的事,
同步可以理解成亲自去做一件事,从开始一直到结束。
异步来说呢,就是某一步可能会等很久,我就找个人替我做,做完了告诉我(当然包括结果了),这中间我还可以做别的事,
#12
至于阻塞非阻塞,上面已经有人说的很清楚了,
就是一个要等,一个不要等
就是一个要等,一个不要等
#13
同步/异步:
如果调用完成以后所请求的动作要么成功完成,要么失败,叫做同步。
如果调用完成以后所请求的动作还将继续进行,暂时无法得知操作的完成情况,叫做异步。
阻塞/非阻塞:
当请求不能被立即接受时,若立即放弃此次请求并返回一个错误,叫做非阻塞;若一直等到请求可以被接受(或者有错误发生)再返回,叫做阻塞。
如果调用完成以后所请求的动作要么成功完成,要么失败,叫做同步。
如果调用完成以后所请求的动作还将继续进行,暂时无法得知操作的完成情况,叫做异步。
阻塞/非阻塞:
当请求不能被立即接受时,若立即放弃此次请求并返回一个错误,叫做非阻塞;若一直等到请求可以被接受(或者有错误发生)再返回,叫做阻塞。
#14
还有1楼的解释只对于网络来说的,对于操作系统内核操作,也充满同步和异步操作,但是我见过的基本都是异步操作。同步操作的话可能会死人的,
#15
同步就是你(当前线程亲自做),阻塞和非阻塞发生在同步里,一个是你等的时候不能做别的得一门心思傻等,一个是你等的过程中可以做其他事,免得浪费时间。
#1
同步:一个线程只监听一个套接字,可以用于udp
异步: 使用io模型中的一种,如select ,event,一个线程监听多套接字
阻塞: 套接字的send recv 等操作再执行完成以前会阻塞
非阻塞: 操作不会阻塞,所以函数的返回值也不再准确
异步: 使用io模型中的一种,如select ,event,一个线程监听多套接字
阻塞: 套接字的send recv 等操作再执行完成以前会阻塞
非阻塞: 操作不会阻塞,所以函数的返回值也不再准确
#2
我的理解:
1去食堂打饭你自己去就是同步
你排队死等不打到饭不罢休而且排队过程中不做别的,是阻塞,你依然排队但是你和前后的同学说好了,算我在这排着我去干点别的事,轮到你了你再来打饭这是非阻塞
2你自己不去食堂打饭,让你同学代你打饭,打完你去吃这是异步。
区别异步和非阻塞的关键看打饭这个动作的主体是你还是他人
以上不一定完全正确,有什么不对的地方,也请其他人指正
1去食堂打饭你自己去就是同步
你排队死等不打到饭不罢休而且排队过程中不做别的,是阻塞,你依然排队但是你和前后的同学说好了,算我在这排着我去干点别的事,轮到你了你再来打饭这是非阻塞
2你自己不去食堂打饭,让你同学代你打饭,打完你去吃这是异步。
区别异步和非阻塞的关键看打饭这个动作的主体是你还是他人
以上不一定完全正确,有什么不对的地方,也请其他人指正
#3
你和女友约好下午2点约会,在去约会的路上,你们是“异步”前往约会地点,如果你先到了,那么就得“阻塞”,等待你的女友和你“同步”,才能开始约会。如果她先到了,又心高气傲,那么她就“非阻塞”的走了,你得费九牛二虎之力才有可能再约出来。
你和老婆商定下午2点去shopping,在超市里,你们先是“异步”挑选各自想买的东西,接着“同步”挑选家庭所需,然后准备结账走人,发现收银台被“阻塞”了,你把东西和卡交给老婆,让她排队结账,自己“非阻塞”的从旁边通道到停车场,开车出来等待老婆与你“同步”后,回家。
你和老婆商定下午2点去shopping,在超市里,你们先是“异步”挑选各自想买的东西,接着“同步”挑选家庭所需,然后准备结账走人,发现收银台被“阻塞”了,你把东西和卡交给老婆,让她排队结账,自己“非阻塞”的从旁边通道到停车场,开车出来等待老婆与你“同步”后,回家。
#4
楼上的有才
#5
2楼解释很恰当,3楼解释牵强
#6
三楼的还换了个身份,由女朋友到老婆了!
#7
这个比喻很恰当,因为你在等待时候,可以做别的事
这个怎么看都不是异步操作,总体感觉比喻总是怪怪的,
#8
那同步和阻塞的区别是什么呢,同步说的有点笼统!
#9
同步和阻塞没办法比较,不同的概念怎么比较。
#10
哦,那怎么我自己去打饭就算是同步了呢,你能再帮我说一下同步的概念吗,谢谢啦!
#11
其实同步异步和阻塞非阻塞都是对于多线程来说的,
同步可以理解成亲自去做一件事,从开始一直到结束。
异步来说呢,就是某一步可能会等很久,我就找个人替我做,做完了告诉我(当然包括结果了),这中间我还可以做别的事,
同步可以理解成亲自去做一件事,从开始一直到结束。
异步来说呢,就是某一步可能会等很久,我就找个人替我做,做完了告诉我(当然包括结果了),这中间我还可以做别的事,
#12
至于阻塞非阻塞,上面已经有人说的很清楚了,
就是一个要等,一个不要等
就是一个要等,一个不要等
#13
同步/异步:
如果调用完成以后所请求的动作要么成功完成,要么失败,叫做同步。
如果调用完成以后所请求的动作还将继续进行,暂时无法得知操作的完成情况,叫做异步。
阻塞/非阻塞:
当请求不能被立即接受时,若立即放弃此次请求并返回一个错误,叫做非阻塞;若一直等到请求可以被接受(或者有错误发生)再返回,叫做阻塞。
如果调用完成以后所请求的动作要么成功完成,要么失败,叫做同步。
如果调用完成以后所请求的动作还将继续进行,暂时无法得知操作的完成情况,叫做异步。
阻塞/非阻塞:
当请求不能被立即接受时,若立即放弃此次请求并返回一个错误,叫做非阻塞;若一直等到请求可以被接受(或者有错误发生)再返回,叫做阻塞。
#14
还有1楼的解释只对于网络来说的,对于操作系统内核操作,也充满同步和异步操作,但是我见过的基本都是异步操作。同步操作的话可能会死人的,
#15
同步就是你(当前线程亲自做),阻塞和非阻塞发生在同步里,一个是你等的时候不能做别的得一门心思傻等,一个是你等的过程中可以做其他事,免得浪费时间。