在多線程開發(fā)過程中很多人應該都會遇到死鎖問題,死鎖問題也是面試過程中經常被問到的問題,這里介紹在c++中如何使用gdb+python腳本調試死鎖問題,以及如何在程序運行過程中檢測死鎖。 首先介紹什么是死鎖,看下維基百科中的定義: 死鎖(英語:Deadlock),
程序喵之前都在介紹Linux和C++方面的知識,這里穿插一篇Java JNI相關的知識點,總結一下自己平時工作心得,相信會對做JNI編程的同學有所幫助。 背景: 作者目前在做Android項目,但大多數邏輯都會在Native層實現(xiàn),不可避免的需要在Native層使用C++去調用Java
開篇先拋出幾個問題,之后逐個擊破: 什么是進程的虛擬地址空間?為什么進程要有自己的虛擬地址空間,這樣做有什么好處? 我們都聽說過頁映射,什么是頁映射,操作系統(tǒng)為什么要以頁映射方式將程序映射到進程地址空間,這樣做有什么好處?程序運行過程中發(fā)生頁
你知道一次gcc命令究竟經歷了什么嗎? 我們先來看一段C語言示例源代碼: // test.cc#include
2020,形勢大變! 過去的互聯(lián)網驕子們,如今不得不面對現(xiàn)實, 紛紛另尋出路。 那么,他們轉行后都適合做什么呢? 讓我們一探究竟: ·自媒體人· - - - ·乙方· - - - ·程序員· - - - ·產品經理· ·媒介· ·策劃· ·商務· ·設計· ·畫手· ·社群運
大家平時使用Linux系統(tǒng)過程中可能都見過文件系統(tǒng)里有好多帶版本號的共享庫,如下: lrwxrwxrwx 1 root root 21 Mar 25 18:33 libDeployPkg.so.0 -> libDeployPkg.so.0.0.0-rw-r--r-- 1 root root 31304 Mar 25 18:33 libDeployPkg.so.0.0.0lrwxrwxrwx 1 root
程序喵之前已經介紹過C++11的新特性和C++14的新特性(點擊對應文字,直接訪問),今天向親愛的讀者們介紹下C++17的新特性,現(xiàn)在基本上各個編譯器對C++17都已經提供完備的支持,建議大家編程中嘗試使用下C++17,可以一定程度上簡化代碼編寫,提高編程效率。 主
前面程序喵介紹過C++11的新特性,這篇文章介紹下C++14的新特性。 「函數返回值類型推導」 C++14對函數返回類型推導規(guī)則做了優(yōu)化,先看一段代碼: #include
內存泄漏是指由于疏忽或錯誤造成程序未能釋放已經不再使用的內存。內存泄漏并非指內存在物理上的消失,而是應用程序分配某段內存后,由于設計錯誤,導致在釋放該段內存之前就失去了對該段內存的控制,從而造成了內存的浪費。 我們平時開發(fā)過程中不可避免的會
先拋出兩個問題: 指針和引用有什么區(qū)別? 什么時候應該使用指針?什么時候應該使用引用? 01 指針和引用的區(qū)別 首先看一段代碼: int a = 1;int b = 2;int *c = nullptr;c = &a;int &d = b; 指針其實就是一個存放內存地址的整數,這個整數表示的是被指向的變
對于靜態(tài)鏈接先提出兩個問題: Q: 每個目標文件都有好多個段,目標文件在被鏈接成可執(zhí)行文件時,輸入目標文件中的各個段如何被合并到輸出文件? A: 合并相似的段,將所有的.text段合并到輸出文件的.text段,將所有的.data段合并到輸出文件的.data段。 Q: 鏈接
想必大家平時都見過volatile關鍵字,可是大家知道什么時候需要使用volatile關鍵字嗎? 直接看下面代碼: int a = 100; while (a == 100) { // code} 這段程序編譯時,如果編譯器發(fā)現(xiàn)程序始終沒有企圖改變a的值,那它可能就會優(yōu)化這段代碼,變成while(true)的
289117336
Tronlong創(chuàng)龍
詹姆斯6個MVP
hujiaqi06
大有可為
MXX1597759
xingnan123
xiaoguaixh
liqinglong1023