從linux原始碼看epoll
相關推薦
從linux原始碼看epoll
# 從linux原始碼看epoll ## 前言 在linux的高效能網路程式設計中,繞不開的就是epoll。和select、poll等系統呼叫相比,epoll在需要監視大量檔案描述符並且其中只有少數活躍的時候,表現出無可比擬的優勢。epoll能讓核心記住所關注的描述符,並在對應的描述符事件就緒的時候,在epo
從 Linux 原始碼看 socket 的阻塞和非阻塞
從linux原始碼看socket的阻塞和非阻塞 筆者一直覺得如果能知道從應用到框架再到作業系統的每一處程式碼,是一件Exciting的事情。 大部分高效能網路框架採用的是非阻塞模式。筆者這次就從linux原始碼的角度來闡述socket阻塞(block)和非阻塞(non_block)的區別。 本文
從linux原始碼看socket(tcp)的timeout
# 從linux原始碼看socket(tcp)的timeout ## 前言 網路程式設計中超時時間是一個重要但又容易被忽略的問題,對其的設定需要仔細斟酌。在經歷了數次物理機宕機之後,筆者詳細的考察了在網路程式設計(tcp)中的各種超時設定,於是就有了本篇博文。本文大部分討論的是socket設定為block的情
從Linux原始碼看Socket(TCP)Client端的Connect
# 從Linux原始碼看Socket(TCP)Client端的Connect ## 前言 筆者一直覺得如果能知道從應用到框架再到作業系統的每一處程式碼,是一件Exciting的事情。 今天筆者就來從Linux原始碼的角度看下Client端的Socket在進行Connect的時候到底做了哪些事情。由於篇幅原因
從Linux原始碼看Socket(TCP)的bind
# 從Linux原始碼看Socket(TCP)的bind ## 前言 筆者一直覺得如果能知道從應用到框架再到作業系統的每一處程式碼,是一件Exciting的事情。 今天筆者就來從Linux原始碼的角度看下Server端的Socket在進行bind的時候到底做了哪些事情(基於Linux 3.10核心)。 ##
從Linux原始碼看Socket(TCP)的listen及連線佇列
# 從Linux原始碼看Socket(TCP)的listen及連線佇列 ## 前言 筆者一直覺得如果能知道從應用到框架再到作業系統的每一處程式碼,是一件Exciting的事情。 今天筆者就來從Linux原始碼的角度看下Server端的Socket在進行listen的時候到底做了哪些事情(基於Linux 3.1
從Linux原始碼看TIME_WAIT狀態的持續時間
# 從Linux原始碼看TIME_WAIT狀態的持續時間 ## 前言 筆者一直以為在Linux下TIME\_WAIT狀態的Socket持續狀態是60s左右。線上實際卻存在TIME\_WAIT超過100s的Socket。由於這牽涉到最近出現的一個複雜Bug的分析。所以,筆者就去Linux原始碼裡面,一探究竟。
從Linux原始碼看Socket(TCP)的accept
# 從Linux原始碼看Socket(TCP)的accept ## 前言 筆者一直覺得如果能知道從應用到框架再到作業系統的每一處程式碼,是一件Exciting的事情。 今天筆者就從Linux原始碼的角度看下Server端的Socket在進行Accept的時候到底做了哪些事情(基於Linux 3.10核心)。
從Chrome原始碼看事件迴圈
我們經常說JS的事件迴圈有微觀佇列和巨集觀佇列,所有的非同步事件都會放到這兩個佇列裡面等待執行,並且微觀任務要先於巨集觀任務執行。實際上事件迴圈是多執行緒的一種工作方式。通常為了提高執行效率會新起一條或多條執行緒進行並行運算,然後算完了就告知結果並退出,但是有時候並不想每次都新起執行緒,而是讓這些執行緒變成常
從chrome原始碼看瀏覽器如何載入資源
對瀏覽器載入資源有很多不確定性, 例如 css/font的資源的優先順序比img高, 資源的優先順序是怎麼確定的呢? 資源的優先順序又是如何影響到載入的先後順序的? 有幾種情況可能會導致資源被阻止載入? 通過原始碼可以找到答案。 此次原始碼解讀基於Chrom
從vue原始碼看props
前言 平時寫vue的時候知道props有很多種用法,今天我們來看看vue內部是怎麼處理props中那麼多的用法的。 vue提供的props的用法 1. 陣列形式 props: ['name', 'value'] 2. 物件形式 物件形式內部也提供了三種寫法: props: { // 基礎
從JDK原始碼看有趣的方法
在學習JDK的原始碼過程中我遇到了一些有趣有用的方法,在此之前如果要使用這些工具方法,我首先會想到的是commons-lang和guava這樣的語言擴充套件包,但現在如果是寫一些demo,使用原生即可達到目的。當然我們也不能否認它們的作用,在平時的工作專案中幾乎都會引入這些語
從Dictionary原始碼看雜湊表
一、基本概念 雜湊:雜湊是一種查詢演算法,在關鍵字和元素的儲存地址之間建立一個確定的對應關係,每個關鍵字對應唯一的儲存地址,這些儲存地址構成了有限、連續的儲存地址。 雜湊函式:在關鍵字和元素的儲存地址之間建立確定的對應關係的函式。 雜湊表是一種利用雜湊函式組織資料,支援快速插入和搜尋的資料結構。
從SpringBoot原始碼看資源對映原理
前言 很多的小夥伴剛剛接觸SpringBoot的時候,可能會遇到載入不到靜態資源的情況。 比如html沒有樣式,圖片無法載入等等。 今天王子就與大家一起看看SpringBoot中關於資源對映部分的主要原始碼實現。 建議環境允許的情況下,小夥伴們自己使用idea建立一個springBoot專案,跟
【從原始碼看Android】03Android MessageQueue訊息迴圈處理機制(epoll實現)
1 enqueueMessage handler傳送一條訊息 mHandler.sendEmptyMessage(1);經過層層呼叫,進入到sendMessageAtTime函式塊,最後呼叫到enqueueMessageHandler.java public bool
從linux源碼看epoll
current switch else if 用戶 同時 events ipp root 簡單 從linux源碼看epoll前言在linux的高性能網絡編程中,繞不開的就是epoll。和select、poll等系統調用相比,epoll在需要監視大量文件描述符並且其中只有少數
易學筆記-Linux命令-第8章:從shell眼中看世界
第8章:從shell眼中看世界/8.0 echo:單詞分割機制 echo:單詞分割機制 格式:echo 結果集,這裡的結果集可能是 某個字串:abc 多個字串:abc edf 命令結果: ls
從Vue.js原始碼看非同步更新DOM策略及nextTick
寫在前面 因為對Vue.js很感興趣,而且平時工作的技術棧也是Vue.js,這幾個月花了些時間研究學習了一下Vue.js原始碼,並做了總結與輸出。 文章的原地址:https://github.com/answershuto/learnVue。 在學習過程中,為Vue加上了中文的註釋https:/
從原始碼看Spring Boot 2.0.1
Spring Boot 命名配置很少,卻可以做到和其他配置複雜的框架相同的功能工作,從原始碼來看是怎麼做到的。 我這裡使用的Spring Boot版本是 2.0.1.RELEASE Spring Boot最重要的註解: @SpringBootApplication 開啟它: 其
從Webpack原始碼探究打包流程,萌新也能看懂~
簡介 上一篇講述瞭如何理解tapable這個鉤子機制,因為這個是webpack程式的靈魂。雖然鉤子機制很靈活,而然卻變成了我們讀懂webpack道路上的阻礙。每當webpack執行起來的時候,我的心態都是佛繫心態,祈禱中間不要出問題,不然找問題都要找半天,還不如不打包。尤其是loader和plugin的執行