資源簡介:大家好!在我們的工作中,多線程編程是一件太稀松平常的事。在多線程環境下操作一個變量或者一塊緩存,如果不對其操作加以限制,輕則變量值或者緩存內容不符合預期,重則會產生異常,導致進程崩潰。為了解決這個問題,操作系統提供了鎖、信號量以及條件變量等幾種線程同步機制供我們使用。如果每次操作都使用上述機制,在某...
資源簡介:本篇所有算法源碼均已同步收錄 GitHub 倉庫,歡迎點個小??:https://github.com/rongweihe/CPPNotes/tree/master/STL-source-code-notesSTL 算法博大精深,涵蓋范圍之廣,其算法之大觀,細節之深入,泛型思維之于字里行間,每每閱讀都會有不同的收獲。STL 將很多常見的邏輯都封裝為現成的算法,熟悉這些算法的使用和實現...
資源簡介:這個翻譯的內容真不錯,分享給大家。翻譯原文鏈接在這里:https://zhuanlan.zhihu.com/p/427778091推薦大家直接看原文。干貨開始:這本書的副標題是:45ish Simple Rules with Specific Action items for better C++ ,這本書是由公司大佬推薦的, 個人認為有必要掌握一下這45條最佳實踐, 可以很大程度上提升代碼的可讀性和...
資源簡介:大家好,我是小牛上班之后,就感覺時間過的飛快,總感覺畢業那會老伙計們聚餐依依惜別的景象還在眼前,但已經離開學校半年了,今天來講講入職半年生活體會吧。實習熟悉我的小伙伴知道,我之前在微軟實習了一段時間,但那會由于疫情原因,也就在公司呆了兩周左右,但也就是這段實習經歷,讓我找到了一種自己想要的生活方式。...
資源簡介:開場白在之前的文章 《2004:當CPU溫和地走入那個良夜》 中我講到了2000年后摩爾定律的終結,CPU時鐘頻率定格,多核成為CPU發展的新方向,并行計算成為趨勢。在談到并行計算的時候我們不得不提的就是阿姆達爾定律。阿姆達爾定律即 Amdahl's Law。是由美國計算機科學家 Gene Amdahl (1922/11/16 – 2015/11/10)在 1967 年...
資源簡介:C++11標準頒布距今已經十年了,在這個標準中引入了很多新的語言特性,在進一步強化C++的同時,也勸退了很多人,其中就包含右值引用。T&& Doesn’t Always Mean “Rvalue Reference”by Scott MeyersScott Meyers曾經說過:T&&并不總是表示右值引用(rvalue reference)。作為函數參數的&&沒錯。&& 這兩個符號,可能是初學C+...
資源簡介:程序喵祝大家新年快樂,和幾位技術圈優質公眾號聯合送大家幾本書。贈送規則?本次【8個高質量公眾號】聯合一起贊助,參與方式如下:1. 在下方每個公眾號后臺發送暗號「20220213」均可獲得一張「抽獎碼」,但每個號的抽獎碼都是獨家唯一的,每多掃描一張抽獎碼會增多一次中獎機會,點擊參與列表還可以查看自己的中獎概率排名...
資源簡介:作者:二律背反鏈接:https://www.zhihu.com/question/305042684/answer/557460817OOP有且只有一個價值:應對需求的變化。哪里的需求有變化,哪里就要OOP;哪里的需求不變,哪里就不需要OOP。一個hello world我可以一句話搞定、也可以寫四五個class用兩三種設計模式去實現,我不是吃飽了撐的,而是因為我的客戶告訴我需求會...
資源簡介:本文整理自知乎上的同名討論帖:《為什么有些大公司技術弱爆了?》,版權歸原作者所有。原文地址:www.zhihu.com/question/3203922有網友提問:今年年初,到一家互聯網公司實習,該公司是國內行業龍頭。不過技術和管理方面,卻弱爆了。那里的程序員,每天都在看郵件,查問題工單。這些問題,多半是他們設計不當,造成的。代...
資源簡介:數學既是一種文化、一種“思想的體操”,更是現代理性文化的核心。馬克思說:“一門科學只有當它達到了能夠成功地運用數學時,才算真正發展了。”在前幾次科技革命中,數學大都起到先導和支柱作用。我們不能要求決策者本人一定要懂得很多數學,但至少要經常想想工作中有沒有數學問題需要請數學家來咨詢。因為數學是科技創新...
資源簡介:前言大家好,我的朋友們!CPU、IO、磁盤、內存可以說是影響計算機性能關鍵因素,今天就聊探究下內存的那些事兒。內存為進程的運行提供物理空間,同時作為快速CPU和慢速磁盤之間的適配器,可以說是個非常重要的角色。通過本文你將了解到以下內容:本文均圍繞Linux操作系統展開,話不多說,我們開始吧!虛擬內存機制當要學習...
資源簡介:話不多說,干貨走起。1、HashMap面試第一題必問的 HashMap,挺考驗Javaer的基礎功底的,別問為啥放在這,因為重要!HashMap具有如下特性:HashMap 的存取是沒有順序的。KV 均允許為 NULL。多線程情況下該類不安全,可以考慮用 HashTable。JDk8底層是數組 + 鏈表 + 紅黑樹,JDK7底層是數組 + 鏈表。初始容量和裝載因子是決定...
資源簡介:原文:https://zhuanlan.zhihu.com/p/45808885很多現代高級語言多提供了多線程并發技術,今天服務器CPU基本上都是多核架構,在Java中,JVM能夠根據處理器特性(CPU多級緩存系統、多核處理器等)適當對機器指令進行重排序,最大限度發揮機器性能。Java中的指令重排有兩次,第一次發生在將字節碼編譯成機器碼的階段,第二次發...
資源簡介:前言這絕不僅僅是一篇講內聯意義的文章參考我的學習過程,可能對你的知識整合有很大幫助之前寫了一篇總結c++面試的文章,被大佬糾出來很多關于內聯的問題與錯誤。抱著不誤導別人的態度(也因為上篇文章承諾要給大家深入分析一下內聯函數),我在最近的一個月里抽了很多時間去重新研究inline,確實學到了很多以前不了解的知...
資源簡介:相信每位程序員都不甘心只做一個“代碼機器”,都希望自己的IT之路可以走得更長遠!成為一名優秀的Java工程師需要掌握的知識相當多,除了Java編程語言外,操作系統、數據結構與算法、數據庫、常用框架、設計模式、網站架構等等諸多技能也都是統統需要掌握。學習Java有哪些必讀的經典圖書呢?下面為你推薦幾本系統學習Java語...
資源簡介:(文末有福利)要寫出好代碼,首先需要提升品位。很多軟件工程師寫不好代碼,在評審他人的代碼時也看不出問題,就是因為缺乏對好代碼標準的認識。現在還有太多的軟件工程師認為,代碼只要可以正確執行就可以了。這是一種非常低的評價標準,很多重要的方面都被忽視了。好代碼的特性好代碼具有以下特性。1. 魯棒(Solid and Rob...
資源簡介:譯者序最近讀到了分布式系統研究者 Mahesh Balakrishnan 的一篇博客《42 things I learned from building a production database》。同樣做基礎架構,看完大佬總結的經驗后拍案叫絕,其中有幾條簡直是真知灼見,故翻譯了全文。Mahesh Balakrishnan 是 Facebook Delos 項目的負責人。Delos 對標 ZooKeeper,關于 Delos 更多...
資源簡介:計算機的歷史算盤和機械計算機有很多民族自豪感爆棚的兄弟會把算盤當成計算機的起源,還有爆破天的兄弟會把陰陽當成二進制0和1的起源,我覺得這件事兒就有點兒不靠譜了如果非要追究計算機的鼻祖,那就得講講17世紀前歐洲的故事,最早的計算機其實是計算器,就是算數用的,在歐洲工業工業革命的時候,大量的工業模具需要計算...
資源簡介:前言性能優化不管是從方法論,還是從實踐上都有很多東西。本文從 C++ 語本身入手,介紹了一些性能優化的方法,希望能做到簡潔實用。實例1在開始本文的內容之前,讓我們看段小程序://?獲取一個整數對應10近制的位數uint32_t?digits10_v1(uint64_t?v)?{????uint32_t?result?=?0;????do?{????????++r...
資源簡介:Part1? Linux性能優化1、性能優化性能指標高并發和響應快對應著性能優化的兩個核心指標:吞吐和延時應用負載角度:直接影響了產品終端的用戶體驗系統資源角度:資源使用率、飽和度等性能問題的本質就是系統資源已經到達瓶頸,但請求的處理還不夠快,無法支撐更多的請求。性能分析實際上就是找出應用或系統的瓶頸,設法去避...
資源簡介:點擊上方“程序喵大人”,選擇“關注/置頂/星標公眾號”干貨福利,第一時間送達!分享一位大佬 Github 上關于 Qt 學習的總結。作者無私分享了一百多個自定義控件以及幾本 Qt 的書籍(C++ Qt),特此引用這個大佬的干貨,左下角可閱讀原文進入GitHub原分享地址。一、個人總結的經驗語錄學習編程是一個漸變的過程,1年精通,3...
資源簡介:大家好,我是程序喵。最近好多朋友一直關心我過得怎么樣,這篇文章其實想發很久了,算是對大家的一個報備,我一切都好,至于具體怎么樣,畢竟關了一個多月,請各位允許我矯情下,忍住閱讀完此文,謝謝!1這是我不能出門的第39天今天早上起來,打開手機,一個好消息,一個壞消息。小區群里面,居委主任通知:是的,我們又又...
資源簡介:點擊上方“程序喵大人”,選擇“置頂/星標公眾號”干貨福利,第一時間送達!什么叫路由?路由器的英文是 Router,也就是「找路的工具」。找什么路?尋找各個網絡節點之間的路。換句話說,路由器就像是快遞中轉站,包裹會經過一個個的中轉站,從遙遠的地方寄到你家附近,數據包也是一樣。路由器是連接兩個網絡的硬件設備,承...
資源簡介:開場前段時間我在知乎回答了這樣一個問題:為什么C++單例模式不能直接全部使用 static變量和 static函數呢?如果全部使用 static的話,是不是也不會有多線程的問題了?而且“類型::方法”的訪問方式比起先getInstance()再訪問難道不是更加簡單清晰嗎?(還是說是為了附和 “單例” 這樣一個字面上的意思)//大概這個樣子cla...
資源簡介:哈嘍大家好,我是廚子。好久不見,甚是想念。假期過的可真快,一眨眼就結束了。假期七天光打球了,七天打了六場,也沒咋學習和寫文章,后面會加把勁滴。之前答應大家,會邀請一些,剛參加完秋招的 offer 收割機,給大家分享一下,面試心得和復習路線。今天分享的這位老哥是真的猛,我們一起往下看吧。這篇文章會對正在準備...
資源簡介:開源項目Workflow中有個重要的基礎模塊:代碼僅300行的C語言線程池。本文會伴隨源碼分析,而邏輯完備、對稱無差別的特點于第3部分開始歡迎跳閱, 或直接到Github主頁上圍觀代碼????https://github.com/sogou/workflow/blob/master/src/kernel/thrdpool.c???? 0 - Workflow的thrdpool作為目前Github上炙手可熱的異步調度引擎...
資源簡介:gtest的問題gtest需要安裝有時候帶來很多不方便,比如需要經常切換gcc和clang的時候就比較麻煩,安裝的gtest可能在另一個編譯器下編譯不過, 編寫跨平臺程序的時候需要多次安裝gtest,非常不便。另外一個問題是網絡原因,下載安裝gtest或者git上拉gtest都可能因為網絡原因失敗。現代C++ unit test庫除了gtest之外,還有很多...
資源簡介:今天在知乎刷到了一篇大齡碼農從北京到荷蘭的日記,看完后著實令人羨慕不已,國外不僅生活環境和工作強度,都要比國內輕松很多,以后如果結束北漂出國也將是一條不錯的路,以下為原文。作者:小李在荷蘭 | 編輯:對白的算法屋 | 程序喵https://zhuanlan.zhihu.com/p/469261829一. 背景介紹光陰似箭,今年已經41歲的老碼農一...
資源簡介:我們都知道 Linux 是一個多任務操作系統,它支持的任務同時運行的數量遠遠大于 CPU 的數量。當然,這些任務實際上并不是同時運行的(Single CPU),而是因為系統在短時間內將 CPU 輪流分配給任務,造成了多個任務同時運行的假象。CPU 上下文(CPU Context) 在每個任務運行之前,CPU 需要知道在哪里加載和啟動任務。這意味...
資源簡介:外部函數如何訪問其它類的私有成員,你可能想到的是友元,然而友元會侵入原class的代碼。今天看到一個黑魔法:#include <cstdlib>#include <iostream>class Bank {private: double money = 999;public: void check() { std::cout << "check:" << money << "\n"; }};template<auto M>struct Tunnel;template<class T, class...