Chinaunix

标题: 关于go语言的并发性 [打印本页]

作者: laputa73    时间: 2013-07-21 10:34
标题: 关于go语言的并发性
  go语言最大的特点就是原生的并发特性,类似erlang.
但是相应的,要求对应的api必须是无阻塞的.
erlang中的任何io操作,都是不会阻塞整个程序的,
go语言的文件\数据库api,尤其是非官方扩展的api
比如redis,mysql之类的,能否做到无阻塞呢?
作者: flw    时间: 2013-07-31 17:57
laputa73 发表于 2013-07-21 10:34
go语言最大的特点就是原生的并发特性,类似erlang.
但是相应的,要求对应的api必须是无阻塞的.
erlang中的 ...

阻塞没关系啊,用 go 程就可以了。
作者: laputa73    时间: 2013-10-15 10:15
回复 2# flw


   
    如果api只阻塞协程,那是没问题的,但是如果阻塞整个进程,不就没法并发了?
    我看<go web编程>上对数据库这块都没有提及
   只说是否符合database/sql接口
   是否可以认为这些驱动都是支持go-routine的了?
作者: flw    时间: 2013-10-18 09:39
laputa73 发表于 2013-10-15 10:15
回复 2# flw

go 程不是协程。它更像线程。
作者: yakczh_cu    时间: 2013-11-01 20:17
用go来写分布式计算的是不是很合适?
作者: yakczh_cu    时间: 2013-11-01 20:17
用go来写分布式计算的是不是很合适?
作者: laputa73    时间: 2013-11-01 20:31
理论是这样的.不过还得要有基于go的hadoop类似的应用出来才行.
作者: syre    时间: 2013-11-15 10:44
纯 go 实现的驱动都会是无阻塞的
用 cgo 包装的就不好说了。
但是无论哪种情况,都不会造成整个程序阻塞,在 cgo 调用的时候,会从线程池里取一个线程来执行。
作者: Hugo801122    时间: 2014-03-09 23:40
弱弱的说我连erlang都不知道。
作者: qgymje    时间: 2014-08-13 10:24
要用无阻塞,就用buffered channel数据传递
作者: arserangel    时间: 2014-09-18 15:50
楼主,你用的 erlang 好好的,怎么又研穷起来 go lang 了
作者: laputa73    时间: 2014-09-19 08:29
回复 11# arserangel


    你这坟挖的。。。
   而且golang也值得学啊。
作者: arserangel    时间: 2014-09-19 09:38
回复 12# laputa73


    好吧,回头我也试试,不过,我感觉, go 语法挺不适应的,当然,没有 erlang 更难让人适应。。。
作者: arserangel    时间: 2014-09-22 07:51
go 的版本,每天都没有更新么?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2