原创 一張圖瞭解併發與並行

一張圖瞭解併發與並行併發與並行併發並行圖片詳解總結 併發與並行 併發 併發(Concurrency)。當有多個線程在操作時,如果系統只有一個CPU,則它根本不可能真正同時進行一個以上的線程,它只能把CPU運行時間劃分成若干個時間段

原创 Go語言小細節——內置類型鍵值或下標規則

數組和切片組合字面值中下標規則 數組和切片組合字面值中的下標必須爲整數常量 在一個數組或切片組合字面值中,如果一個元素的索引下標缺失,則編譯器認爲它的索引下標爲出現在它之前的元素的索引下標加一 package main im

原创 Go語言小細節——表達式估值順序

表達式估值 當估值一個表達式、賦值語句或者函數返回語句中的操作數時,所有的函數調用、方法調用和通道操作將按照它們在代碼中的出現順序進行估值。但是 Go 白皮書未指定表達式中其它估值順序。 目前 Go 的編譯器官方維護有兩種主流的,

原创 Golang的Goruntine調度原理

Golang的Goruntine調度原理Goroutine的調度模型調度實現注意要點每次go調用的時候當線程阻塞時Goruntinue如何調度G任務中斷後的恢復 Goroutine的調度模型 Go的調度器內部有四個重要的結構:M,

原创 Go語言小細節——變量估值規則

變量與常量的估值 package main func main() { var n uint = 10 const N uint = 10 var x byte = (1 << n) / 100 var y byte =

原创 Go語言小細節——分號自動插入規則

插入規則 在 Go 代碼中,註釋除外,如果一個代碼行的最後一個語法詞段(token)爲下列所示之一,則一個分號將自動插入在此字段後(即行尾): 一個標識符 一個整數、浮點數、虛部、碼點或者字符串字面表示形式 這幾個跳轉關鍵字之

原创 Linux線程的調度機制

Linux線程的調度機制   在Linux中,線程是由進程來實現,線程就是輕量級進程( lightweight process ),因此在Linux中,線程的調度是按照進程的調度方式來進行調度的。Linux這樣實現的線程的好處的之一是

原创 Longest Substring Without Repeating Characters 最長無重複子串

LeetCode題解 5. Longest Substring Without Repeating Characters題目思路代碼實現(Go語言) 題目 Given a string, find the length of the

原创 Golang的make與new的區別

Golang的make與new的區別創建對象類型不同返回類型不同make爲什麼返回非零值 創建對象類型不同 make用於內建類型(map、slice 和channel)的內存分配。 new用於各種類型的內存分配。 返回類型不同 new

原创 寫給大四

這篇文章是我無意識間翻看電腦文件找到的,應該是曾經的我從網上複製下來的,文章的內容再加上最近個人的境遇,我發現自己有點迷茫了,在進入社會這幾年,慢慢的讓自己有些不知所措。把此文發出來,希望更多地人可以看到,重新找回真正屬於內心的自己,

原创 Golang的垃圾回收機制

Golang的垃圾回收機制什麼是垃圾回收?常見的垃圾回收方法引用計數(reference counting)標記-清除(mark and sweep)分代收集(generation)三色標記法Go的GC何時觸發 什麼是垃圾回收? 傳統

原创 併發與並行的區別

一張圖瞭解併發與並行併發與並行併發並行圖片詳解總結 併發與並行 併發 併發(Concurrency)。當有多個線程在操作時,如果系統只有一個CPU,則它根本不可能真正同時進行一個以上的線程,它只能把CPU運行時間劃分成若干個時間段,再

原创 Golang的Goruntine調度機制

Golang的Goruntine調度機制Goroutine的調度模型調度實現注意要點每次go調用的時候當線程阻塞時Goruntinue如何調度G任務中斷後的恢復 Goroutine的調度模型 Go的調度器內部有四個重要的結構:M,P,

原创 進程、線程、協程與Goroutine

進程、線程、協程與Goroutine進程與線程(隔離與並行)進程線程協程協程的核心機制爲何使用中斷協程與線程協程與GoruntineGOMAXPROCS 進程與線程(隔離與並行) 進程 進程可看作爲分配資源的基本單位。比如你new出了