原创 go語言中的接口實現

type Reader interface { Read(p []byte) (n int, err error) }   type MyIoReader struct{     UploadFileSize int     Upl

原创 Go語言併發機制初探

Go語言併發機制初探   Go 語言相比Java等一個很大的優勢就是可以方便地編寫併發程序。Go 語言內置了 goroutine 機制,使用goroutine可以快速地開發併發程序, 更好的利用多核處理器資源。這篇文章學習 gorouti

原创 go runtime.Gosched()的作用分析

go runtime.Gosched()的作用分析 untime.Gosched()用於讓出CPU時間片。這就像跑接力賽,A跑了一會碰到代碼runtime.Gosched()就把接力棒交給B了,A歇着了,B繼續跑。 看代碼: packa

原创 golang多核設置

golang多核設置 單核執行如果for前面或者中間不延遲,主線程不會讓出CPU,導致異步的線程無法執行, 從而無法設置flag的值,從而出現死循環 實例代碼: package main import ( "fmt" "runti

原创 go語言之行--golang核武器goroutine調度原理、channel詳解

go語言之行--golang核武器goroutine調度原理、channel詳解 2018.07.06 21:46 1804瀏覽 一、goroutine簡介 goroutine是go語言中最爲NB的設計,也是其魅力所在,goroutine

原创 python3相關包安裝工具pip

1.首先安裝python3 2.下載pip包 3.解壓,並運行如下安裝:(如果要更新python2的pip,只需將python3換成python即可) sudo python3 setup.py build sudo python3 se

原创 python grpc示例

1.環境安裝: pip install grpcio pip install protobuf pip install grpcio-tools 2.新建proto文件grpchello.proto,定義接口,內容如下: syntax

原创 服務註冊與發現

       consul提供服務註冊與健康檢查功能,服務使用方可監視對應服務的情況(要啓動專用線程),但是沒找到對應的使用方式。  只找到一個建康檢查的接口(示例:http://localhost:8500/v1/health/serv

原创 go實現高效tcp服務器(適合短連接)類似fasthttp,長連接的每個連接分配一個協程(標準庫中的http)

package mainimport ( "fmt" "net" "os" "time")const ( MAX_CONN_NUM = 10)//服務處理函數,如果處理過程過於複雜,可以啓動一定量的協程來做

原创 Linux編程之PING的實現

Linux編程之PING的實現 PING(Packet InterNet Groper)中文名爲因特網包探索器,是用來查看網絡上另一個主機系統的網絡連接是否正常的一個工具。ping命令的工作原理是:向網絡上的另一個主機系統發送ICMP報文

原创 性能優化實戰:百萬級WebSockets和Go語言

SegmentFault首頁問答專欄講堂發現搜索立即登錄免費註冊曼託斯 發佈於 技術譯文 關注專欄2017年09月14日  ·  7.9k 人閱讀性能優化實戰:百萬級WebSockets和Go語言 golang go語言 併發 內存 性能

原创 go的log(一):Golang 標準庫提供的log

go的log(一):Golang 標準庫提供的log Golang的標準庫提供了log的機制,但是該模塊的功能較爲簡單(看似簡單,其實他有他的設計思路)。不過比手寫fmt. Printxxx還是強很多的。至少在輸出的位置做了線程安全的保護

原创 Python格式化字符格式化

Python格式化字符 %s %d %f格式 描述%% 百分號標記 #就是輸出一個%%c 字符及其ASCII碼%s 字符串%d 有符號整數(十進制)%u 無符號整數(十進制)%o 無符號整數(八進制)%x 無符號整數(十六進制)%X 無符

原创 go網絡框架思路

主協程:負責接收客戶端的連接,放至連接通道中去。讀協程組:負責從連接通道中取連接,並讀到客戶端的數據,讀完後放至工作數據通道中去。(包含客戶端的連接socket和讀到的數據)工作協程組:負責從工作數據通道中取數據,做相應工作,比如:網絡相

原创 tcp長連接處理服務端和客戶端處理方式

長連接的處理方式是:Server端收到Client端發來的信息之後,開始心跳計時,在設定時間內如果收到Client發來的消息,則重置計時器,否則計時結束斷開連接。Client端,處理方式是:用time.NewTicker創建一個定時器,每