老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

go語言IO密集型,go io庫

「測試開發全棧化-Go」(1) Go語言基本了解

作為一個測試,作為一個測試開發, 全棧化+管理 是我們未來的發展方向。已經掌握了Java、Python、HTML的你,是不是也想了解下最近異常火爆的Go語言呢?來吧,讓我們一起了解下。

公司主營業務:成都網站制作、做網站、外貿營銷網站建設、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。成都創新互聯公司是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創新互聯公司推出陽朔免費做網站回饋大家。

Go 是一個開源的編程語言 ,它能讓構造簡單、可靠且高效的軟件變得容易。

Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發,后來還加入了Ian Lance Taylor, Russ Cox等人,并最終于2009年11月開源,在2012年早些時候發布了Go 1穩定版本。現在Go的開發已經是完全開放的,并且擁有一個活躍的社區。這三個人都是計算機界的大神,有的參與了C語言的編寫,有的還是數學大神,有的還獲得了計算機最高榮譽-圖靈獎。

接下來說說 Go語言的特色 :

簡潔、快速、安全

并行、有趣、開源

內存管理、數組安全、編譯迅速

Go語言的用途 :

Go 語言被設計成一門應用于搭載 Web 服務器,存儲集群或類似用途的巨型中央服務器的系統編程語言。

對于高性能分布式系統領域而言,Go 語言無疑比大多數其它語言有著更高的開發效率。它提供了海量并行的支持,這對于 游戲 服務端的開發而言是再好不過了。

Go語言的環境安裝:

建議直接打開 官方地址因為墻的原因打不開

因為我用的是windows系統,這里主要講下Windows系統上使用Go語言來編程。

Windows 下可以使用 .msi 后綴(在下載列表中可以找到該文件,如go1.17.2.windows-amd64.msi)的安裝包來安裝。

默認情況下 .msi 文件會安裝在 c:Go 目錄下。你可以將 c:Gobin 目錄添加到 Path 環境變量中。添加后你需要重啟命令窗口才能生效。個人建議還是安裝到 Program Files文件夾中。

使用什么開發工具來對Go語言進行編寫:

個人建議用VS code, 也可以用Sublime Text來編輯。如果你之前看了我講的HTML語言的學習,肯定已經下載了VS code. 那么這時你需要在VS code中下載Go語言的擴展插件。

這里有一個巨大的坑,就是在下載Go的插件和依賴包時,會提示一些包沒有。主要是因為下載的依賴包部分被墻了,只能想別的辦法去下載。

建議參考網頁:

解決vscode中golang插件安裝失敗方法

在學習go的過程中,使用的是vscode,但是一直提示安裝相關插件失敗,然后上網查方法,基本上是叫你建立golang.org目錄什么的,結果全是錯的,而且都是抄襲,很煩。無意之中看到一位博主分享的方法,他也是飽受上述的垃圾博文困擾,然后找到了解決方法,這里向他致敬,秉著讓更多人看到正確解決方法的心,我寫下正確的解決方法,希望對你有所幫助,也可以點開原博主鏈接參考:

Go有一個全球模塊代理,設置代理再去安裝golang的插件,就可以安裝成功了。步驟有,首先Windows用戶打開Powershell,一個藍色的界面,注意不是cmd!不知道的直接打開window下面的搜索,然后輸入powershell,搜索出來就可以了。

$env:GO111MODULE=“on”

$env:GOPROXY=“”

go env -w GOPROXY=

go env -w GOPRIVATE=*.corp.example.com

然后我們打開VsCode界面,下面會提示安裝插件,我們選擇Install ALL,就會安裝成功

當你在運行Go語言程序時,提示所有的插件包都已經安裝成功了時,就可以正常使用了,要不然一堆報錯會讓你非常心煩。

好了,今天先到這里,晚安、下班~

golang什么場景設置runtime.GOMAXPROCS=cpu數量會提高性能

這是測試的代碼

// parallel package main

import ( "fmt" "math/rand" "runtime" "sort" "time" )

func testData() [][]int { now := time.Now() src := rand.NewSource(now.UnixNano()) seed := rand.New(src) data := make([][]int, 10000) for i := 0; i len(data); i++ { data[i] = make([]int, 10000) for j := 0; j 10000; j++ { data[i][j] = seed.Intn(100000) } } return data }

func test() { data := testData() ch := make(chan int) for i := 0; i len(data); i++ { go func(ch chan int, data []int) { sort.Ints(data[:]) ch - 1 }(ch, data[i][:]) } for i := 0; i len(data); i++ { -ch } }

func main() { st := time.Now() test() fmt.Println(time.Since(st)) runtime.GOMAXPROCS(2) st = time.Now() test() fmt.Println(time.Since(st)) runtime.GOMAXPROCS(3) st = time.Now() test() fmt.Println(time.Since(st)) runtime.GOMAXPROCS(4) st = time.Now() test() fmt.Println(time.Since(st)) fmt.Println("Hello World!") }

該代碼的作用是生成10000個數組,每個數組有10000個int元素,分別調用不同CPU核數進行排序計算。用的是Go內置的排序函數。

中的時間如下

25.6269405s

14.1753705s

10.3508423s

8.5466479s

分別是單核,2核,3核,4核的計算時間。的確用多核后計算速度提升很大。

golang協程調度模式解密

golang學習筆記

頻繁創建線程會造成不必要的開銷,所以才有了線程池。在線程池中預先保存一定數量的線程,新任務發布到任務隊列,線程池中的線程不斷地從任務隊列中取出任務并執行,可以有效的減少創建和銷毀帶來的開銷。

過多的線程會導致爭搶cpu資源,且上下文的切換的開銷變大。而工作在用戶態的協程能大大減少上下文切換的開銷。協程調度器把可運行的協程逐個調度到線程中執行,同時即時把阻塞的協程調度出協程,從而有效地避免了線程的頻繁切換,達到了少量線程實現高并發的效果。

多個協程分享操作系統分給線程的時間片,從而達到充分利用CPU的目的,協程調度器決定了則決定了協程運行的順序。每個線程同一時刻只能運行一個協程。

go調度模型包含三個實體:

每個處理器維護者一個協程G的隊列,處理器依次將協程G調度到M中執行。

每個P會周期性地查看全局隊列中是否有G待運行并將其調度到M中執行,全局隊列中的G主要來自系統調用中恢復的G.

如果協程發起系統調用,則整個工作線程M被阻塞,協程隊列中的其他協程都會阻塞。

一般情況下M的個數會略大于P個數,多出來的M將會在G產生系統調用時發揮作用。與線程池類似,Go也提供M池子。當協程G1發起系統掉用時,M1會釋放P,由 M1-P-G1 G2 ... 轉變成 M1-G1 , M2會接管P的其他協程 M2-P-G2 G3 G4... 。

冗余的M可能來源于緩存池,也可能是新建的。

當G1結束系統調用后,根據M1是否獲取到P,進行不用的處理。

多個處理P維護隊列可能不均衡,導致部分處理器非常繁忙,而其余相對空閑。產生原因是有些協程自身不斷地派生協程。

為此Go調度器提供了工作量竊取策略,當某個處理器P沒有需要調度的協程時,將從其他處理中偷取協程,每次偷取一半。

搶占式調度,是指避免某個協程長時間執行,而阻礙其他協程被調度的機制。

調度器監控每個協程執行時間,一旦執行時間過長且有其他協程等待,會把協程暫停,轉而調度等待的協程,以達到類似時間片輪轉的效果。比如for循環會一直占用執行權。

在IO密集型應用,GOMAXPROCS大小設置大一些,獲取性能會更好。

IO密集型會經常發生系統調用,會有一個新的M啟用或創建,但由于Go調度器檢測M到被阻塞有一定延遲。如果P數量多,則P管理協程隊列會變小。


網頁名稱:go語言IO密集型,go io庫
新聞來源:http://www.xueling.net.cn/article/hdpdoe.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 久久网一区二区三区 | 七妺福利精品导航大全 | 欧美丰满熟妇bbbbbb百度 | 国产麻豆aⅴ尤物网站尤物 中国少妇XXXX做受 | 午夜a级理论片915影院 | 亚洲WWW永久成人网站 | 日本熟妇色videosex | 91精品国产综合久久国产大片 | 亚洲成av人片天堂网无码 | 亚洲另类激情网站 | 1024国产在线观看 | 国产无遮挡无码裸体视频在现观看 | cijilu在线视频一噜噜嘿 | 日本韩国黄色一区二区三区 | 狠狠躁夜夜躁人人爽天天开心婷婷 | 91大神视频在线播放 | 激情黄页 | jj男色网 | 免费爆乳精品一区二区 | 色婷婷亚洲精品 | 国产尤物小视频在线观看 | 无人在线视频观看免费 | 日韩欧美视频在线播放 | 岛国黄色大片 | 91豆花视频 | 益日韩欧群交P片内射中文 最好看的中文视频最好的中文 | www中文字幕| 少妇与黑人一二三区无码 | 亚洲欧美日韩国产成人精品影院 | 激情久久网 | 久久成人在线 | 俺来俺也去www色在线观看 | 日韩高清在线 | 亚洲午夜精品久久久久久性色 | 日韩不卡一卡二卡3卡四卡网站 | 亚洲Av无码国产精品色午 | 超碰国产欧美人人 | 一级做a爱片久久毛片 | 国产女同无遮挡互慰高潮视频 | 欧美一级毛片免费观看 | 日韩一区二区三区四区视频 |