为了账号安全,请及时绑定邮箱和手机立即绑定

如何获得并发方法

如何获得并发方法

Go
DIEA 2021-04-06 16:15:06
如何获得并发方法?type test struct {    foo uint8    bar uint8}func NewTest(arg1 string) (*test, os.Error) {...}func (self *test) Get(str string) ([]byte, os.Error) {...}我认为方法的所有代码Get()都应放在的内部go func(),然后使用通道。func (self *test) Get(str string) ([]byte, os.Error) {    go func() {        // Code for this method.    }()}如果从中调用另一种方法会不会有问题Get()?还是也必须是并发的?
查看完整描述

2 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

看一下《 Go语言规范》中的“示例包”部分,它是一个完整的Go包,它使用go语句和通道实现了并发的主筛。

对于它是如何工作的详细说明,请参见转到教程部分素数。另外,请参见“多路复用”中的“入门教程”部分。

阅读有关并发的“有效执行”部分。

最后,阅读Go语言规范的相关部分,例如,关于Go语句通道类型Select语句的部分

是的,您可以从Get()方法中调用另一个方法。由于方法调用不是并发的go语句,因此它将在执行下一条语句之前立即执行。


查看完整回答
反对 回复 2021-04-26
?
UYOU

TA贡献1878条经验 获得超4个赞

使用go并发的方法是在要同时执行的函数前面使用关键字“ go”:

功能栏(){...}

func foo(){go bar()go bar()go bar()...等待所有bar关闭的代码...}

这就是同时运行3个小节所需要的全部。PS:您可能想以您熟悉的语言(C ++ / Perl / Python /等等)提供示例,因为您所包含的go代码片段并没有多大帮助。我意识到您的英语水平可能会比您的母语水平好,但是您可能还希望获得一些帮助,以更清楚地阐明您的问题。


查看完整回答
反对 回复 2021-04-26
  • 2 回答
  • 0 关注
  • 215 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信