世間萬物都可以同時完成很多工作。例如,人體可以同時進行呼吸、血液循環、思考問題等活動。用戶既可以使用計算機聽歌,也可以編寫文檔和發送郵件,而這些活動的完成可以同時進行。
線程技術
如何查看一個線程的ID
1.什么是線程? linux內核中是沒有線程這個概念的,而是輕量級進程的概念:LWP。一般我們所說的線程概念是C庫當中的概念。 1.1線程是怎樣描述的?...
2023-11-13
標簽:接口內存PID
2.6k
0
內存是如何泄露的
作為 C++ 程序員,內存泄露始終是懸在頭上的一顆***。在過去幾年的 C++ 開發過程中,由于我們采用了一些技術,我們的程序發生內存泄露的情況屈指可數...
2023-11-13
標簽:內存程序C++
936
0
線程內存泄漏問題的定位
記錄一個關于線程內存泄漏問題的定位過程,以及過程中的收獲。 1. 初步定位 是否存在內存泄漏:想到內存泄漏,首先查看/proc/meminfo,通過/p...
2023-11-13
標簽:嵌入式函數線程
1.4k
0
多線程環境為什么使用時間輪
一、網絡事件和時間事件 對于服務端來說,驅動服務端邏輯的事件主要有兩個,?個是?絡事件,另?個是時間事件; 在不同框架中,這兩種事件有不同的實現?式; ...
2023-11-13
標簽:定時器窗口多線程
1.1k
0
進程和線程的區別
1.什么是進程?為什么要有進程? 進程有一個相當精簡的解釋:進程是對操作系統上正在運行程序的一個抽象。 這個概念確實挺抽象,仔細想想卻也挺精準。 我們平...
2023-11-11
標簽:cpu操作系統線程
1.5k
0
死鎖的現象及原理
組件如何放入自己的項目里?把代碼末兩個Debug部分刪除,在你的項目里添加下面兩句代碼即可使用死鎖檢測組件。 init_hook (); start_c...
2023-11-10
標簽:死鎖函數代碼
1.2k
0
無鎖隊列解決的問題
為什么需要無鎖隊列 無鎖隊列解決了什么問題?無鎖隊列解決了鎖引起的問題。 cache失效 當CPU要訪問主存的時候,這些數據首先要被copy到cache...
2023-11-10
標簽:cpu數據內存
1.9k
0
互斥鎖及條件變量的使用
本文主要分為三個部分: 第一部分簡要介紹線程的概念及其使用 第二部分主要介紹互斥鎖及條件變量的使用(重點探討pthread_cond_wait) 第三部...
2023-11-10
標簽:cpu通信處理器系統
1.3k
0
CAS如何實現各種無鎖的數據結構
關于CAS等原子操作 在開始說無鎖隊列之前,我們需要知道一個很重要的技術就是CAS操作——Compare Swap,現在幾乎所有的CPU指令都支持CAS...
2023-11-10
標簽:內存數據結構CAS
1.3k
0
Libevent框架庫簡介
一、Libevent簡介 Libevent是開源社區一款高性能的I/O框架庫,其具有如下特點: 1、跨平臺支持。Libevent支持Linux、UNIX...
2023-11-09
標簽:框架函數線程
2.1k
0
c++線程中鎖的基本類型和用法
線程之間的鎖有:互斥鎖、條件鎖、自旋鎖、讀寫鎖、遞歸鎖。一般而言,鎖的功能與性能成反比。不過我們一般不使用遞歸鎖(C++標準庫提供了std::recur...
2023-11-09
標簽:參數函數C++
3.9k
0
用epoll來實現多路復用
本人用epoll來實現多路復用,epoll觸發模式有兩種: ET(邊緣模式) LT(水平模式) LT模式 是標準模式,意味著每次epoll_wait()...
2023-11-09
標簽:數據緩沖線程
1.2k
0
如何正確保護共享數據編寫并行程序
非阻塞型同步 (Non-blocking Synchronization) 簡介 如何正確有效的保護共享數據是編寫并行程序必須面臨的一個難題,通常的手段...
2023-11-09
標簽:數據線程并行程序
1.1k
0
Linux內核中的各種鎖介紹
首先得搞清楚,不同鎖的 作用對象 不同。 下面分別是作用于 臨界區 、 CPU 、 內存 、 cache 的各種鎖的歸納: 一、atomic原子變量/s...
2023-11-08
標簽:內存線程LINUX內核
1.6k
0
協程的作用、結構及原理
本文介紹了協程的作用、結構、原理,并使用C++和匯編實現了64位系統下的協程池。文章內容避免了協程晦澀難懂的部分,用大量圖文來分析原理,適合新手閱讀學習...
2023-11-08
標簽:Web服務器RPCC++
2.6k
0
什么是內存池
1什么是內存池 1.1池化技術 所謂“池化技術”,就是程序先向系統申請過量的資源,然后自己管理,以備不時之需。之所以要申請過 量的資源,是因為每次申請該...
2023-11-08
標簽:內存操作系統程序
2k
0