亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲得并發方法

如何獲得并發方法

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條經驗 獲得超22個贊

看一下《 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 關注
  • 266 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號