topics

全部话题 - 话题: 异步
1 2 3 4 5 末页 (共10页)
q*c
发帖数: 9453
1
来自主题: Programming版 - 大牛们讨论一下异步编程吧
用了 异步以后再也不想 异步。
我们讨论了半天, 终结了异步的本质:
=== 异步就是当年的 goto 语句 ===
今天为什么没人用 goto, 就是为什么能不用异步就别用的原因。
goto 当年也是炙手可热的玩意 - 带来各种灵活性, 写各种牛屄难解的程序, 有巨
大的方便啊。
p*****2
发帖数: 21240
2
来自主题: Programming版 - 大牛们讨论一下异步编程吧

我正在看AKKA。有两点使得不如node异步纯粹
1. AKKA 允许阻塞, node不允许
2. 如果要在AKKA上做纯粹的异步就需要scala提供所有的异步类库,这个貌似还没有达到
因此,感觉用AKKA写异步还是要麻烦不少。当然了AKKA牛在了是一个distributed
actor model。跟node不是一个level的。
z****e
发帖数: 54598
3
会依次对比node.js, fp, spring, ejb和vert.x的解决方案,然后自己看哪个最好
从最基本的说起,所有语言都一定会有两个东西
一个是变量,我们用var(variable)来表示
另外一个是方法/函数,用func(function)表示
假设有一个函数和一个变量
var var1;
func func1(){
var1 = 0;
return var1+1;//应该是1
}
那现在如果有多个线程并发
那结果会怎样?
那在func1执行完var1 = 0;之后
就有可能有其他线程插入,把var1改成其他值
比如改成var1 = 2; 或者var1 = "goodbug乱入";
那瞬间func1返回值不再是1了,那这个显然是不可接受的
那怎么办?
第一种是fp的做法,fp说,把变量做成immutable
也就是var -> val(value),把var1改成
val1 = 0;
return val1+1;//就一定是1鸟
但是这样为了多线程把所有的参数都搞成immutable鸟
然后你写代码时候,需要时刻提醒自己
常量啊,常量啊,常量啊……
第二种是node.js等... 阅读全帖
z****e
发帖数: 54598
4
会依次对比node.js, fp, spring, ejb和vert.x的解决方案,然后自己看哪个最好
从最基本的说起,所有语言都一定会有两个东西
一个是变量,我们用var(variable)来表示
另外一个是方法/函数,用func(function)表示
假设有一个函数和一个变量
var var1;
func func1(){
var1 = 0;
return var1+1;//应该是1
}
那现在如果有多个线程并发
那结果会怎样?
那在func1执行完var1 = 0;之后
就有可能有其他线程插入,把var1改成其他值
比如改成var1 = 2; 或者var1 = "goodbug乱入";
那瞬间func1返回值不再是1了,那这个显然是不可接受的
那怎么办?
第一种是fp的做法,fp说,把变量做成immutable
也就是var -> val(value),把var1改成
val1 = 0;
return val1+1;//就一定是1鸟
但是这样为了多线程把所有的参数都搞成immutable鸟
然后你写代码时候,需要时刻提醒自己
常量啊,常量啊,常量啊……
第二种是node.js等... 阅读全帖
s*******d
发帖数: 59
5
来自主题: Programming版 - 异步通讯代码的简化
有的异步socket的实现框架是通过诸如beginXXX,endXXX等一些回调函数,
可想而知,这样的代码恐怕支离破碎,即难编又难看。
去年看到C#的新语句,yield,通过状态机和将local变量包装到自动生成的类里,
可以方便实现代码的两次调用间的接续执行。
感觉也可以通过这种机制将原来异步的代码转化成同步的写法。
比如
function webservice(socket s) {
YIELD_BLOCK_BEGIN
...
YIELD_READ(s)
...
YIELD_WRITE(s)
...
YIELD_BLOCK_END
}
另外有线程来调用上面的webservice,到YIELD_READ时,其实是执行异步read就返回,
等read ready的时候线程继续调用webservice,执行就从YIELD_READ后开始。
具体到C++实现,大家有什么好主意吗?
p*****2
发帖数: 21240
6
来自主题: Programming版 - 大牛们讨论一下异步编程吧

我也不是大牛。我看到很多公司转node了,不过node还主要是集中在了前端,也就是抢
php, ruby, python这些语言的市场,优势太大。后端的话,还需要继续努力,不过我
觉得潜力很大,我就是用node做后端。
转到node的公司,我知道的
linkedin,
groupon,
airbnb,
当然还有很多公司转到java/scala了。但是异步编程即使ruby,python里边也不得不用
,不然性能提升不上去。
我感觉很多项目不一定都是很大的项目,大项目node肯定没有Java有优势,但是做小一
些的项目,尤其是做prototype和需求变化比较大的项目,node非常合适,而且一旦上
量,也跟的上去。node的问题主要是JS语言的限制吧,但是这么纯粹的异步框架,貌似
还没有第二个。其他语言做异步都要更麻烦很多。当然Go我没看过。
c****e
发帖数: 1453
7
来自主题: Programming版 - 大牛们讨论一下异步编程吧
简单总结一下,C# async/await,python/twist 是让你用同步的方式写异步,写起来非
常简单,大大节省脑力。node.js强迫你都是异步,虽然callback很土,但是JS还是很
灵活的,写起来代码量并不大。至于performance, 不要有各种迷思,到了OS层次都是
一样的thread。最后快慢取决于有没有把代码分成最够小的块来异步。
至于说到node.js,比较喜欢MEAN stack: mongoDB, express.js, agularjs, node.js.
中前台都包了。除了很多scheduling, resource management这种重量级的backend
service,还真是价格便宜量又足。
L*****e
发帖数: 8347
8
来自主题: Programming版 - 说同步比异步快的根本不懂网站
那你说的同步异步是说,同步是大家都集中在9点递单子,异步是大家分开时间每隔三
分钟递一个单子?如果这样的“异步”,那岂不是第一个递单的3分钟看到了结果,后
面排队递单的耽误了侃football?而且,好奇ing,这是多么大的一家公司,得雇多少
HR才能同时递几千个单啊?
你别怪哥问得详细哈,我这是帮你修建防卫堡垒,免得一会儿大牛们来了乱砖猛拍,咱
们先把他们可能有的问题都想好对策。。。

★ 发自iPhone App: ChineseWeb 8.2.2
L*****e
发帖数: 8347
9
来自主题: Programming版 - 说同步比异步快的根本不懂网站
哥大概明白是咋回事了,你大概是弄混了,同步,异步,实时,延时的概念,这个不怪
你,他们混着用,有的地方乱用,有同步实时,有同步延时,有异步实时,也有异步延
时,是容易被绕昏。。。

★ 发自iPhone App: ChineseWeb 8.2.2
L*****e
发帖数: 8347
10
来自主题: Programming版 - 说同步比异步快的根本不懂网站
好吧,我多说一两句,我是觉得你的例子来比较同步异步不是太贴切,你说出的你们所
谓的同步异步方案差别在前端UI上,而大家这里讨论的是机器接到并发的指令以后是同
步处理还是异步处理(也有可能是我理解错了,水太大,看不清上下文)。你们的网站
,即使一次把填的表提交,后台处理也可能是把它们同步处理。。。老魏的同步抢票方
案,也没说是让用户在网页上先填车次提交一次,再填起点,又提交一次,再填终点,
又提交一次。。。

外。
★ 发自iPhone App: ChineseWeb 8.2.2
z****e
发帖数: 54598
11
尤其是卡牌麻将牌棋类这种回合制的游戏server
比较适合用异步,vert.x灰常match这种需求
绝大多数web用啥异步啊,根本木有必要,而且还搞什么单线程
好容易用异步节省下来的资源都给单线程给吃掉了
最后效率还不如古老的servlet
x****u
发帖数: 44466
12
来自主题: Programming版 - 给你们推荐个思路:异步
据说某宝最近在推NodeJS,解决1111秒杀之类的游戏问题。
异步是好东西,NodeJS的优点是强制异步,你不异步寸步难行。抢票秒杀,前后端看起
来都非常简单:
前端:任何时候系统不能无响应。
后端:人再多也要把东西卖掉卖光,不能死掉。
这玩意模型做好了就是调几个参数的问题,当码农要对自己好点,不要动不动就位操作
杀的。发布整套系统需要数小时,春运期间还睡不睡觉了。
D**********s
发帖数: 3139
13
报名请去老连接:
http://www.mitbbs.com/article_t/HiFi/31270931.html
1.异步usb接收,驱动支持window和mac,有32bit和64bit版本。
2.监听功放从以前的单独绕组变成了独立变压器供电,整机双牛供电大容量滤波。
3.整机唯一贴片器件只有回流焊的USB芯片,其余都使用发烧直插器件和opa镀金座。
4.保留BNC接口,AES EBU接口
5.定制特殊功放散热片,高摩擦系数大尺寸音量旋钮
6.加跳线,胆输出增益控制可variable/by pass
7.解码箱面板增加码率和位深指示LED
8.器件能找到好的就用好的了,聚丙烯电容,光音片,1%金属膜电阻之类的。
9.解码箱和功放箱尺寸相同,可以上下摞放或者并排平放(推荐)。
10.高低阻抗耳机插口分开,8-32欧姆一个插口,32-1000欧姆一个插口。
上了异步以后又做了很多调整,以上是一些变化,不过平衡解码电路和新的双牛机箱布
局还在调试之中,等最后定下来,我会把器材成本和外协成本做一个核算,更新团购价
和照片。这次校声和选器材都多方征求了很多有经验老师的意见,器件的采购和制... 阅读全帖
h*****n
发帖数: 209
14
【 以下文字转载自 Programming 讨论区 】
发信人: hanuman (神猴), 信区: Programming
标 题: 谁能说说同步/异步IO和阻塞/非阻塞IO的区别?
发信站: BBS 未名空间站 (Mon Jan 24 23:50:56 2011, 美东)
感觉同步I/O就是阻塞I/O,异步I/O就是非阻塞I/O啊,
但是好像这两组概念又不太一样。希望版上的大牛发表高见。
A*****a
发帖数: 20
15
我觉得同步异步指的是IO的结果,阻塞非阻塞指的是IO的过程。
异步IO可以理解为,你告诉OS要从网络读100个字节,OS收到命令,但是不会马上告诉
你是否读完这个100个字节,你可以接着做别的事情;当100个字节读好以后,OS会以某
种方式来通知你。
非阻塞IO是指,调用read/write的时候,read/write会立即返回,返回在OS缓冲区内的
结果。比如,要从网络读100个字节,目前的缓冲区内收到有50个字节,非阻塞的read
就会立即返回50个字节。
同步IO就是系统调用返回的时候会告诉你是否读完或者写完。
阻塞IO就是,read/write会等待IO的完成,而不是只返回缓冲区的数据。
h**6
发帖数: 4160
16
来自主题: JobHunting版 - 异步写文件的问题
已知n个文件,和异步写单个文件的函数,void writeFile(int fileIndex, callback
cb); 其中callback是std::function
现在需要以递不减的顺序写文件,即可能是1、2、3、3、5、5、7、12这样可重复可跳
过无返回的顺序。
要求写出另一个异步写单个文件的函数,调用writeFile,但确保不会同时写同一文件
b*****e
发帖数: 53215
17
来自主题: Soccer版 - 异步太适合万米乐
应该说异步太适合弱旅了
就是万米这种中场没有制造积肥能力的
有球就给前轰,他拿得住,能过两个,还能传的出球
属于一个人干3个人的活,异步拿那么多工资很合理
h*****n
发帖数: 209
18
【 以下文字转载自 Programming 讨论区 】
发信人: hanuman (神猴), 信区: Programming
标 题: 谁能说说同步/异步IO和阻塞/非阻塞IO的区别?
发信站: BBS 未名空间站 (Mon Jan 24 23:50:56 2011, 美东)
感觉同步I/O就是阻塞I/O,异步I/O就是非阻塞I/O啊,
但是好像这两组概念又不太一样。希望版上的大牛发表高见。
c*********e
发帖数: 16335
19
来自主题: Programming版 - 说同步比异步快的根本不懂网站
同步就是排队上车,异步就是同时多人上车,当然是异步快。
z****e
发帖数: 54598
20
比起你自己动手去用各种lock,那是要强太多
但是比起其他多线程的框架来说,比如fp那种
就未必了,其实本质没啥大不了的
无非就是隔离嘛,mutable的var容易导致冲突
那如何解决,就是这些框架要解决的问题
解决手段有很多,最终实现的程度也不一样
显然vert.x最爽,你不需要成天惦记着什么single thread, immutable这些东西
当然synchronized这些就更不需要了,vert.x下我可以肆无忌惮滴重用代码
只需要记住一个basic rule,任何时候,一个verticle只会被一个thread所访问,o啦
剩下的是vert.x的事,其他的都做不到,要你记这个要你记那个,烦死
嗯,ejb勉强可以,但是繁琐了点,要配置,当然vert.x也不是完美的
还是需要自己对付异步问题,虽然比起node已经好很多了
那现在不就是一堆人涌过去解决这个问题嘛
把以前老的同步api全部弄成异步的,当然rxjava解决的callback金字塔也是一个成果

好?
z****e
发帖数: 54598
21
比起你自己动手去用各种lock,那是要强太多
但是比起其他多线程的框架来说,比如fp那种
就未必了,其实本质没啥大不了的
无非就是隔离嘛,mutable的var容易导致冲突
那如何解决,就是这些框架要解决的问题
解决手段有很多,最终实现的程度也不一样
显然vert.x最爽,你不需要成天惦记着什么single thread, immutable这些东西
当然synchronized这些就更不需要了,vert.x下我可以肆无忌惮滴重用代码
只需要记住一个basic rule,任何时候,一个verticle只会被一个thread所访问,o啦
剩下的是vert.x的事,其他的都做不到,要你记这个要你记那个,烦死
嗯,ejb勉强可以,但是繁琐了点,要配置,当然vert.x也不是完美的
还是需要自己对付异步问题,虽然比起node已经好很多了
那现在不就是一堆人涌过去解决这个问题嘛
把以前老的同步api全部弄成异步的,当然rxjava解决的callback金字塔也是一个成果

好?
b***i
发帖数: 3043
22
来自主题: Programming版 - 用ASIO写TCP/IP,同步还是异步 ?
要求:服务器端(嵌入式)有三个网卡,同时监听,功能类似。如果有connect就发回
一个JSON,然后客户端发来一个JSON。之后,每次客户端都发一个JSON,我发回JSON。
如果某一次,发来的JSON是{exit},那么这个程序将退出,就是要结束所有三个网卡
的监听。
一般来说,只有最多两个客户端同时接入 。如果每个网卡设置接入上限则接受新的关
掉旧的。比如可以每个网卡规定最多只能三个连接。
==============
我用了asio,不想用boost。看到异步需要boost.bind。那么我是不是只能用同步?同步
如何退出线程?是不是可以设置每个操作的时限?
有人说线程增加1M内存,我用Linux,共有1G内存,应该不是问题。因为我最多9个线程
在监听。
另有人说,最好的退出block线程的方式是自己生成客户端来连接到监听的端口从而使
block的线程进行下去然后发现共有变量设为退出了,就退出。
关于异步我还有些问题,但是如果推荐同步我就不问这些问题了。
S*******s
发帖数: 13043
23
来自主题: Programming版 - js里怎么一批批地执行异步操作?
就是一共需要1百万个操作,先扔出1千个异步,等它们都执行完,再扔1千个,再等,
直到这1百万个全弄完。怎么实现?es7里有了await可能会方便点,可是我们现在还只
能用es6的promise。
相关的背景:典型的mysql访问是这样的:
var defered=Q.defer();
connection.query(sql,defered.makeNodeResolver());
return defered.promise;
那么我如果有1M条记录,对每个记录都需要访问数据库跑十几条操作,如果写成这样:
function ProcessAll(results ) {
var waitfor=[];
for( var i=0;i< results.length;i++){
waitfor.push( process(results[i]));
}
Q.all(waitfor).then(function(results) {
notifySu... 阅读全帖
L******w
发帖数: 2317
24
来自主题: Military版 - 特斯拉到现在用的还是异步电机
什么是 异步电机 ?
什么是同步电机?
D**********s
发帖数: 3139
25
当然这个dac最powerful的还是异步USB输入或者平衡AESEBU/spdif输入,平衡XLR模拟
输出到前级和后级,不论动态或信噪比的表现,都是这个分体dac设计的初衷。
z*****d
发帖数: 672
26
来自主题: HiFi版 - 团购DAC 异步问题
听着没问题,但是今天打开相声软件,发现ASIO Driver Status 是Non-Active,
Stop, 但是DAC上的灯显示Asynchornous USB。那到底这个异步是否工作呢?
c***4
发帖数: 57
27
来自主题: JobHunting版 - 异步电路master找工作求建议
我的研究生的系是CS 本科是EE
学校是加州前几所的学校
但是 自认为还是个EE的学生
虽然也用c++编程 但是是属于看着书编的那种
因为是异步电路 所以如果要走VLSI设计方面的
还是要稍微复习下同步电路 工业界的分工流程等等
另外一条路就是码工
那真是需要花大力气准备coding和algo的
但是好像同时兼顾
时间比较紧
大家有没有什么建议呢
I*******t
发帖数: 7652
s******f
发帖数: 3984
29
异步是联赛吉祥物,岂能说换就换的
最好头上插三根香,我米将士轮流参拜
d********f
发帖数: 43471
30
来自主题: Soccer版 - 万米肯定把大异步退货
大异步的屁眼算是白舔了
l*******o
发帖数: 12469
31
Tuttosport的报道。大异步两三年内要为题米赢得所有可能的奖杯之后就退役。
h****o
发帖数: 1193
32
大异步什么意思,是打伊布吗?
我知道,你看不懂,伊就来优越感了。优越就是这样出人意表地存在:)
l*******o
发帖数: 12469
33
来自主题: Soccer版 - 大异步说他要投票给煤球
大异步不是退出瑞典国家队了么?
s*****2
发帖数: 3103
34
来自主题: Soccer版 - 异步一点表现都没有啊
异步一点表现都没有啊
h*****n
发帖数: 209
35
感觉同步I/O就是阻塞I/O,异步I/O就是非阻塞I/O啊,
但是好像这两组概念又不太一样。希望版上的大牛发表高见。
p*****2
发帖数: 21240
36
来自主题: Programming版 - 大牛们讨论一下异步编程吧
感觉用了异步以后,再也不想用同步了
d*******r
发帖数: 3299
37
来自主题: Programming版 - 大牛们讨论一下异步编程吧
顶一下这个!
最近想用Node.js+MongoDB搭个prototype玩玩
不过始终觉得异步的写法很难受呢,难道是我太菜...
p*****2
发帖数: 21240
38
来自主题: Programming版 - 大牛们讨论一下异步编程吧

我就是node+mongo。你如果有问题我们可以一起探讨。我用了node之后,性能提高很多
倍。基本上就是Linkedin 30台服务器到3台服务器的差别。
从同步到异步是需要适应一下,不过适应了以后就牛逼了,可以做很多别的语言做不了
的事情。
G***l
发帖数: 355
39
来自主题: Programming版 - 大牛们讨论一下异步编程吧
C#里面异步不要太简单。msdn的例子:
private async void StartButton_Click(object sender, RoutedEventArgs e)
{
// ExampleMethodAsync returns a Task and has an int result.
// A value is assigned to intTask when ExampleMethodAsync reaches
// an await.
try
{
Task intTask = ExampleMethodAsync();
// You can do other work here that doesn't require the result from
// ExampleMethodAsync. . . .
ResultsTextBox.Text += "Doing other work before awaiting intTask. ... 阅读全帖
p*****2
发帖数: 21240
40
来自主题: Programming版 - 大牛们讨论一下异步编程吧

昨天看到有人说C#异步搞的不错,是正路子。
p*****2
发帖数: 21240
41
来自主题: Programming版 - 大牛们讨论一下异步编程吧

大牛能不能简单说一下C#的异步机制?我有点懒得自己查。
g*****g
发帖数: 34805
42
来自主题: Programming版 - 大牛们讨论一下异步编程吧
scala+akka的异步也很纯粹。
g*****g
发帖数: 34805
43
来自主题: Programming版 - 大牛们讨论一下异步编程吧
node.js异步牛在单线程,整个stack没啥blocking call,跟C#走的路子不一样。
p*****2
发帖数: 21240
44
来自主题: Programming版 - 大牛们讨论一下异步编程吧

async
跟。感觉异步主要就是为了高并发的。
p*****2
发帖数: 21240
45
来自主题: Programming版 - 大牛们讨论一下异步编程吧

如果不能提高concurrency, 为什么要用异步呢?
N********n
发帖数: 8363
46
来自主题: Programming版 - 大牛们讨论一下异步编程吧

C#当年设计的出发点之一就是尽量支持异步模式。早期的PATTERN比较罗嗦,
有了ASYNC/AWAIT之后既方便又灵活。
x****u
发帖数: 44466
47
来自主题: Programming版 - 大牛们讨论一下异步编程吧
异步是多核必须的选择。
p*****2
发帖数: 21240
48
来自主题: Programming版 - 大牛们讨论一下异步编程吧

.net 异步是不是thread safe的?
N********n
发帖数: 8363
49
来自主题: Programming版 - 大牛们讨论一下异步编程吧

Like I said "异步" is ALL ABOUT NON-BLOCK EXECUTION. It does not
affect your thread safety.
q*c
发帖数: 9453
50
来自主题: Programming版 - 大牛们讨论一下异步编程吧
“大项目node肯定没有Java有优势” -- 为什么?
和为什么goto 搞死大项目的原因一样。异步多了没法 maintain.
1 2 3 4 5 末页 (共10页)