這篇文章先介紹單機(jī)數(shù)據(jù)庫(kù)事務(wù)的ACID特性,然后指出分布式場(chǎng)景下操作多數(shù)據(jù)源面臨的困境,引出分布式系統(tǒng)中常用的分布式事務(wù)解決方案,這些解決方案可以保證業(yè)務(wù)代碼在操作多個(gè)數(shù)據(jù)源的時(shí)候,能夠像操作單個(gè)數(shù)據(jù)源一樣,具備ACID特性。
C語(yǔ)言里,每個(gè)源文件是一個(gè)模塊,頭文件為使用該模塊的用戶(hù)提供接口。接口指一個(gè)功能模塊暴露給其他模塊用以訪問(wèn)具體功能的方法。使用源文件實(shí)現(xiàn)模塊的功能,使用頭文件暴露單元的接口。用戶(hù)只需包含相應(yīng)的頭文件就可使用該頭文件中暴露的接口。
本文通過(guò)對(duì)Linux下串口驅(qū)動(dòng)的分析,由最上層的C庫(kù),到操作系統(tǒng)系統(tǒng)調(diào)用層的封裝,再到tty子系統(tǒng)的核心,再到一系列線路規(guī)程,再到最底層的硬件操作。
再見(jiàn)十月,再見(jiàn)S10,別罵蘇寧,你好十一月;忽然想水一篇和技術(shù)無(wú)關(guān)的,一起來(lái)說(shuō)一說(shuō)如何提高自己的學(xué)習(xí)力,個(gè)人拙見(jiàn)了,我知道你還沒(méi)睡!
之前做了一個(gè)項(xiàng)目,參考了開(kāi)源項(xiàng)目本杰明電調(diào)(去GitHub搜VESC)或者simpleFOC也不錯(cuò),總之都挺香;換做自己寫(xiě),原本以為會(huì)挺簡(jiǎn)單的,沒(méi)想到入坑了,而且還挺深的,燒了不少片子,燒了不少板子,感覺(jué)身體被掏空,總結(jié)一下整個(gè)算法的流程。
你知道哪個(gè)操作系統(tǒng)是世界上最受歡迎的操作系統(tǒng)嗎?是Linux!它一般運(yùn)行于服務(wù)器和超級(jí)計(jì)算機(jī)上,我們?nèi)粘TL問(wèn)網(wǎng)站背后的數(shù)百萬(wàn)臺(tái)服務(wù)器很有可能運(yùn)行著的操作系統(tǒng)就是Linux。在本文中,我們將學(xué)習(xí)Linux是什么以及它來(lái)自何處,常用的Linux知識(shí)以及想要在這個(gè)令人興奮的平臺(tái)上暢游所需的命令。
說(shuō)到指針,估計(jì)還是有很多小伙伴都還是云里霧里的,有點(diǎn)“知其然,而不知其所以然”。但是,不得不說(shuō),學(xué)了指針,C語(yǔ)言才能算是入門(mén)了。指針是C語(yǔ)言的「精華」,可以說(shuō),對(duì)對(duì)指針的掌握程度,「直接決定」了你C語(yǔ)言的編程能力。
現(xiàn)在基本上每周末都要去上國(guó)碩的課提升自己的非技術(shù)技能,同時(shí)也希望兩年后順利拿到碩士學(xué)位,完成我人生第一階段的目標(biāo);所以最近一段時(shí)間個(gè)人基本上忙得不可開(kāi)支,既需要完成老師布置的課題,也需要完成課程總結(jié)等等。
之前有位小伙伴留言問(wèn)道tee工具的代碼在哪兒?這篇文章我們就來(lái)簡(jiǎn)單分享一下。
宏的使用,大家經(jīng)常會(huì)用,但是一般只是簡(jiǎn)單定義一個(gè)符號(hào)常量,類(lèi)似于 #define WHEEL_SCALE_MM?0.53f、 #define LOG_I(tag, text_fmt, ...) log_i(tag, text_fmt, ##__VA_ARGS__)? ,但是除此之外還有宏還有個(gè)##粘貼作用,可以配合#define這個(gè)常量表達(dá)式,可以做成一個(gè)宏定義指針函數(shù)列表,繼而查詢(xún)執(zhí)行函數(shù)。話(huà)不多說(shuō),我們開(kāi)始今天的分享,首先還是會(huì)進(jìn)行一下常規(guī)的描述,再分享"##"粘貼的妙用。
在Linux下的開(kāi)發(fā)中,printf打印調(diào)試信息默認(rèn)輸出到標(biāo)準(zhǔn)輸出 stdout (即屏幕/終端)中。我們也可以使用輸出重定向技術(shù)輸出到指定文件中,輸出重定向即是把原本要輸出到屏幕的信息寫(xiě)入到指定文件中。
作為Sharding-JDBC 分庫(kù)分表實(shí)戰(zhàn)系列的開(kāi)篇文章,我們?cè)谇拔闹谢仡櫫艘幌路謳?kù)分表的基礎(chǔ)知識(shí),對(duì)分庫(kù)分表的拆分方式有了一定的了解,下邊我們介紹一下 Sharding-JDBC框架和快速的搭建一個(gè)分庫(kù)分表案例,為講解后續(xù)功能點(diǎn)準(zhǔn)備好環(huán)境。
研究過(guò)AQS源碼的小伙伴們應(yīng)該知道,AQS是JUC的核心,而CLH鎖又是AQS的基礎(chǔ),說(shuō)核心也不為過(guò),因?yàn)锳QS就是用了變種的CLH鎖。如果要學(xué)好Java并發(fā)編程,那么必定要學(xué)好JUC;學(xué)好JUC,必定要先學(xué)好AQS;學(xué)好AQS,那么必定先學(xué)好CLH。因此,這就是我們?yōu)槭裁匆獙W(xué)習(xí)CLH鎖的原因。
說(shuō)到web服務(wù)器,想必大多數(shù)人首先想到的協(xié)議是http,那么http之下則是 tcp。本文將通過(guò)tcp來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的web服務(wù)器。本篇文章將著重講解如何實(shí)現(xiàn),對(duì)于http與tcp的概念本篇將不過(guò)多講解。
五種IO模型包括:阻塞IO、非阻塞IO、IO多路復(fù)用、信號(hào)驅(qū)動(dòng)IO、異步IO。
學(xué)習(xí)一個(gè)知識(shí)之前,我覺(jué)得比較好的方式是先理解它的來(lái)龍去脈:即這個(gè)知識(shí)產(chǎn)生的過(guò)程,它解決了什么問(wèn)題,它是怎么樣解決的,還有它引入了哪些新的問(wèn)題(沒(méi)有銀彈),這樣我們才能比較好的抓到它的脈絡(luò)和關(guān)鍵點(diǎn),不會(huì)一開(kāi)始就迷失在細(xì)節(jié)中。所以,在學(xué)習(xí)分布式系統(tǒng)之前,我們需要解決的第一個(gè)問(wèn)題是:分布式系統(tǒng)解決了什么問(wèn)題?
本篇將會(huì)通過(guò)三國(guó)中的赤壁之戰(zhàn)來(lái)講述周瑜、黃蓋和諸葛亮是怎么把服務(wù)雪崩玩到極致的。
對(duì)于某些對(duì)時(shí)間精度要求較高的程序,用 c 寫(xiě)延時(shí)顯得有些力不從心,故需用到匯編程序。本人通過(guò)測(cè)試,總結(jié)了 51 的精確延時(shí)函數(shù)(在 c 語(yǔ)言中嵌入?yún)R編)分享給大家。
STVP是ST早期的一款下載編程工具,支持早期的ST早期的芯片(比如ST7系列),也支持STM8、 STM32。該工具雖然相對(duì)ST-LINK utility、STM32CubeProg比較老,但該工具官方在2017年還進(jìn)行了維護(hù),目前還處于ACTIVE(活躍)狀態(tài)。
變量是程序中重要的一部分,產(chǎn)品中很多業(yè)務(wù)代碼都是變量起到了關(guān)鍵作用。傳感器采集的數(shù)據(jù)、通信中傳輸?shù)臄?shù)據(jù)、算法中的數(shù)據(jù)等這些數(shù)據(jù)都需要借助變量這個(gè)東西來(lái)實(shí)現(xiàn)。我們?yōu)槭裁匆獙⒆兞?、?shù)組(例如表或函數(shù))存儲(chǔ)到特定的地址?