婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Go語(yǔ)言實(shí)現(xiàn)互斥鎖、隨機(jī)數(shù)、time、List

Go語(yǔ)言實(shí)現(xiàn)互斥鎖、隨機(jī)數(shù)、time、List

熱門(mén)標(biāo)簽:廣州呼叫中心外呼系統(tǒng) 浙江高速公路地圖標(biāo)注 江西轉(zhuǎn)化率高的羿智云外呼系統(tǒng) 地圖標(biāo)注的汽車(chē)標(biāo) 南通如皋申請(qǐng)開(kāi)通400電話 高德地圖標(biāo)注口訣 西部云谷一期地圖標(biāo)注 中國(guó)地圖標(biāo)注省會(huì)高清 學(xué)海導(dǎo)航地圖標(biāo)注

Go語(yǔ)言實(shí)現(xiàn)互斥鎖、隨機(jī)數(shù)、time、List

import (
  "container/list"
  "fmt"
  "math/rand" //備注2:隨機(jī)數(shù)的包
  "sync" //備注1:異步任務(wù)的包
  "time"
)

type INFO struct {
  lock sync.Mutex  //備注1:異步鎖
  Name string
  Time int64
}

var List *list.List = list.New() //備注3:初始化List變量

func main() {
  var Info INFO
  go func() {
    for i := 0; i  5; i++ {
      time.Sleep(time.Duration(1e9 * int64(rand.Intn(5))))//備注2:隨機(jī)數(shù)rand.Intn(5)---> 1e9為科學(xué)計(jì)數(shù)法,1 * 10的9次方
      Info.lock.Lock()//備注1:上鎖
      Info.Name = fmt.Sprint("Name", i) //備注: Sprint采用默認(rèn)格式將其參數(shù)格式化,串聯(lián)所有輸出生成并返回一個(gè)字符串。如果兩個(gè)相鄰的參數(shù)都不是字符串,會(huì)在它們的輸出之間添加空格
      Info.Time = time.Now().Unix() + 3
      Info.lock.Unlock()//備注1:解鎖
      List.PushBack(Info)//備注3:List表達(dá)式調(diào)用
    }
  }()
  go Getgoods()
  select {}
}
func Getgoods() {
  for {
    time.Sleep(1e8)
    for List.Len() > 0 {//備注3:List對(duì)象的使用
      N, T := List.Remove(List.Front()).(INFO).name() //備注3:List對(duì)象的使用和value.(type)的妙用
      now := time.Now().Unix() //備注4:獲取當(dāng)前日期轉(zhuǎn)換后的時(shí)間戳
      if T-now = 0 {
        fmt.Println(N, T, now)
        continue
      }
      time.Sleep(time.Duration((T - now) * 1e9))
      fmt.Println(N, T, now)
    }
  }
}

func (i INFO) name() (string, int64) {
  return i.Name, i.Time
}

再給大家分享一個(gè)互斥鎖的實(shí)例代碼

package main
 
import (
  "fmt"
  "runtime"
  "sync"
)
 
var (
  counter int
  wg sync.WaitGroup
  mutex sync.Mutex
)
 
func main() {
  wg.Add(2)
   
  fmt.Println("Create Goroutines")
  go incCounter(1)
  go incCounter(2)
   
  fmt.Println("Waiting To Finish")
  wg.Wait()
   
  fmt.Println("Final Counter:", counter)
}
 
func incCounter(id int) {
  defer wg.Done()
  for count := 0; count  2; count++ {
    mutex.Lock()
    {
      value := counter
      runtime.Gosched()
      value++
      counter = value
    }
    mutex.Unlock()
  }
}

您可能感興趣的文章:
  • Go語(yǔ)言range關(guān)鍵字循環(huán)時(shí)的坑
  • Go語(yǔ)言中http和mysql的實(shí)現(xiàn)代碼
  • go語(yǔ)言中int和byte轉(zhuǎn)換方式
  • Go語(yǔ)言中的字符串處理方法示例詳解
  • Go語(yǔ)言中多字節(jié)字符的處理方法詳解
  • Go語(yǔ)言中 Channel 詳解
  • go語(yǔ)言中strings包的用法匯總
  • Go語(yǔ)言的JSON處理詳解
  • Go語(yǔ)言的文件操作代碼匯總
  • Golang數(shù)組的傳遞詳解

標(biāo)簽:曲靖 保定 貴州 東營(yíng) 常州 德宏 許昌 吐魯番

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go語(yǔ)言實(shí)現(xiàn)互斥鎖、隨機(jī)數(shù)、time、List》,本文關(guān)鍵詞  語(yǔ)言,實(shí)現(xiàn),互斥,鎖,隨機(jī)數(shù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go語(yǔ)言實(shí)現(xiàn)互斥鎖、隨機(jī)數(shù)、time、List》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Go語(yǔ)言實(shí)現(xiàn)互斥鎖、隨機(jī)數(shù)、time、List的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 石景山区| 禹城市| 台北市| 武定县| 布拖县| 乃东县| 高唐县| 泰和县| 池州市| 海林市| 鹿泉市| 鸡西市| 黄陵县| 宣恩县| 阜新市| 凉城县| 华池县| 青岛市| 睢宁县| 南川市| 广德县| 湘阴县| 高邑县| 镇康县| 金坛市| 通渭县| 泌阳县| 安宁市| 台南市| 年辖:市辖区| 东海县| 花莲县| 萝北县| 宁都县| 资源县| 新津县| 福建省| 竹山县| 平远县| 孝昌县| 丰城市|