<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] ## 題目一 使用 goroutine 和 channel 實現一個計算int64隨機數各位數和的程序,例如生成隨機數61345,計算其每個位數上的數字之和為19。 1. 開啟一個 goroutine 循環生成int64類型的隨機數,發送到jobChan 2. 開啟24個 goroutine 從jobChan中取出隨機數計算各位數的和,將結果發送到resultChan 3. 主 goroutine 從resultChan取出結果并打印到終端輸出 ```go package main import ( "fmt" "math" "math/rand" "sync" "time" ) /* randomNumGen 生成int32范圍為的隨機數,取值范圍[0-2147483647) */ func randomNumGen(jch chan int, swg *sync.WaitGroup) { defer swg.Done() rand.Seed(time.Now().UnixMilli()) num := rand.Intn(math.MaxInt32) jch <- num } /* calcSum 計算每一位數之和。例如生成隨機數61345,計算其每個位數上的數字之和為19。 */ func calcSum(jch chan int, rch chan int, swg *sync.WaitGroup) { defer swg.Done() sum := 0 i := <-jch fmt.Printf("Deal with %d\n", i) for { if i > 0 { // 累加個數和 sum += i % 10 // 10地板除,相當于把個位數刪掉 i /= 10 } else { // 等于0時,退出死循環 break } } rch <- sum } func main() { var swg sync.WaitGroup var once sync.Once jobChan := make(chan int, 3) resultChan := make(chan int, 3) // 開啟一個 goroutine 循環生成int64類型的隨機數,發送到jobChan swg.Add(1) go randomNumGen(jobChan, &swg) // 開啟24個 goroutine 從jobChan中取出隨機數計算各位數的和,將結果發送到resultChan swg.Add(1) for i := 0; i < 24; i++ { go once.Do(func() { calcSum(jobChan, resultChan, &swg) }) } // 等待goroutine執行完畢 swg.Wait() // 主 goroutine 從resultChan取出結果并打印到終端輸出 fmt.Println("sum", <-resultChan) } // 運行結果 // Deal with 385831658 // sum 47 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看