如何获得并发方法

如何获得并发方法?


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()?还是也必须是并发的?


DIEA
浏览 278回答 2
2回答

茅侃侃

看一下《 Go语言规范》中的“示例包”部分,它是一个完整的Go包,它使用go语句和通道实现了并发的主筛。对于它是如何工作的详细说明,请参见转到教程部分素数。另外,请参见“多路复用”中的“入门教程”部分。阅读有关并发的“有效执行”部分。最后,阅读Go语言规范的相关部分,例如,关于Go语句,通道类型和Select语句的部分。是的,您可以从Get()方法中调用另一个方法。由于方法调用不是并发的go语句,因此它将在执行下一条语句之前立即执行。

UYOU

使用go并发的方法是在要同时执行的函数前面使用关键字“ go”:功能栏(){...}func foo(){go bar()go bar()go bar()...等待所有bar关闭的代码...}这就是同时运行3个小节所需要的全部。PS:您可能想以您熟悉的语言(C ++ / Perl / Python /等等)提供示例,因为您所包含的go代码片段并没有多大帮助。我意识到您的英语水平可能会比您的母语水平好,但是您可能还希望获得一些帮助,以更清楚地阐明您的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go