在了解計(jì)算機(jī)架構(gòu)之前,我們先來認(rèn)識幾位對計(jì)算機(jī)的發(fā)明做出關(guān)鍵共享的幾位大佬。
對于已經(jīng)工作了的小伙伴,你應(yīng)該是見過"責(zé)任鏈"這種面向?qū)ο蟮脑O(shè)計(jì)模式的,還在上學(xué)的小伙伴也不用著急,你遲早會接觸到的。本文旨在讓小白同學(xué)和不太熟悉責(zé)任鏈的朋友能夠迅速對這一設(shè)計(jì)模式有一個(gè)大致的了解。
通過本文,你將會了解到:IO事件和IO復(fù)用、線程模型和事件驅(qū)動模型的架構(gòu)、基于事件驅(qū)動的Reactor模式詳解、同步IO和異步IO簡介。
線程(英語:Thread)是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。它被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單位。一條線程指的是進(jìn)程中一個(gè)單一順序的控制流,一個(gè)進(jìn)程中可以并發(fā)多個(gè)線程,每條線程并行執(zhí)行不同的任務(wù)。在Unix System V及SunOS中也被稱為輕量進(jìn)程(Lightweight Processes),但輕量進(jìn)程更多指內(nèi)核線程(Kernel Thread),而把用戶線程(User Thread)稱為線程。
噗。。為啥不是面試題了,封面船去哪里了?要開好船,先回到我們的初心---Linux,這篇文章是Linux的超級基礎(chǔ)且經(jīng)常用到的內(nèi)容,不多說,直接肝!
為什么我們代碼將浮點(diǎn)數(shù)、整數(shù)進(jìn)行強(qiáng)制轉(zhuǎn)換,或打印輸出時(shí)會出精度損失,或出錯(cuò)的情況? 想要搞明白這個(gè)問題,就需要了解一下整數(shù)、浮點(diǎn)數(shù)的存儲規(guī)則。
你是否也聽過類似的話語?我聽說過無數(shù)次,有些是面對面的交談,而有些來自某個(gè)論壇。雖然答案無非是“取決于具體情況”,但以我的拙見,學(xué)習(xí)C編程是非常寶貴的經(jīng)驗(yàn)。我想通過這篇短文向你展示C偉大的一面。
通過本文你將會了解到以下內(nèi)容:IO事件和IO復(fù)用、線程模型和事件驅(qū)動模型的架構(gòu)、基于事件驅(qū)動的Reactor模式詳解、同步IO和異步IO簡介。
最近沒有什么產(chǎn)出,嚇得ZhengN翻箱倒柜倒出一些小東西來發(fā)。下面分享一個(gè)ZhengN大二時(shí)候的一個(gè)小玩具,軟硬件都分享給大家,有需要的小伙伴,文末獲取。這個(gè)小作品設(shè)計(jì)到了強(qiáng)電,不建議沒經(jīng)驗(yàn)的小伙伴上手,了解了解即可。
筆者參考了市面上各種各樣的嵌入式書籍,如MCS-51、AVR、ARM等都有看過,但沒發(fā)現(xiàn)有哪本是介紹設(shè)計(jì)思想的,就算有也是鳳毛麟角。寫程序不難,但如何寫得好、寫得快,那是需要點(diǎn)經(jīng)驗(yàn)積累的。所以在下出來獻(xiàn)丑一下,總結(jié)了一些東西。就我個(gè)人的經(jīng)驗(yàn)而談,有2個(gè)設(shè)計(jì)思想是非常重要的。
今天想和大家分享的內(nèi)容是和我們手機(jī)上APP相關(guān)的,它們都是用什么編程語言寫的呢?
無論在哪個(gè)系統(tǒng)中,刪除文件都是必須謹(jǐn)慎的操作。因?yàn)槿绻恍⌒膭h除了重要文件,就會導(dǎo)致個(gè)人或公司出現(xiàn)重大的損失。類似于windows系統(tǒng)誤刪了文件,可以使用一些軟件進(jìn)行恢復(fù)操作。Linux也是有幾款軟件可以做到誤刪恢復(fù)的。
C語言中,未初始化的局部變量到底是多少?
innodb事務(wù)日志包括redo log和undo log。redo log是重做日志,提供前滾操作,undo log是回滾日志,提供回滾操作。undo log不是redo log的逆向過程,其實(shí)它們都算是用來恢復(fù)的日志。
現(xiàn)在使用NIO的場景越來越多,很多網(wǎng)上的技術(shù)框架或多或少的使用NIO技術(shù),譬如Tomcat,Jetty。學(xué)習(xí)和掌握NIO技術(shù)已經(jīng)不是一個(gè)JAVA攻城獅的加分技能,而是一個(gè)必備技能。
后臺服務(wù)可以劃分為兩類,有狀態(tài)和無狀態(tài)。高可用對于無狀態(tài)的應(yīng)用來說是比較簡單的,無狀態(tài)的應(yīng)用,只需要通過F5或者任何代理的方式就可以很好的解決。后文描述的主要是針對有狀態(tài)的服務(wù)進(jìn)行分析。服務(wù)端進(jìn)行狀態(tài)維護(hù)主要是通過磁盤或內(nèi)存進(jìn)行保存,比如MySQL數(shù)據(jù)庫,redis等內(nèi)存數(shù)據(jù)庫。除了這兩種類型的維護(hù)方式,還有jvm的內(nèi)存的狀態(tài)維持,但jvm的狀態(tài)生命周期通常很短。
最近有個(gè)網(wǎng)友問了我一個(gè)問題:系統(tǒng)中大事務(wù)問題要如何處理?正好前段時(shí)間我在公司處理過這個(gè)問題,我們當(dāng)時(shí)由于項(xiàng)目初期時(shí)間比較緊張,為了快速完成業(yè)務(wù)功能,忽略了系統(tǒng)部分性能問題。項(xiàng)目順利上線后,專門抽了一個(gè)迭代的時(shí)間去解決大事務(wù)問題,目前已經(jīng)優(yōu)化完成,并且順利上線?,F(xiàn)給大家總結(jié)了一下,我們當(dāng)時(shí)使用的一些解決辦法,以便大家被相同問題困擾時(shí),可以參考一下。
何為全局異常的自適應(yīng)呢?
Linux內(nèi)核對網(wǎng)絡(luò)包的接收過程大致可以分為接收到RingBuffer、硬中斷處理、ksoftirqd軟中斷處理幾個(gè)過程。其中在ksoftirqd軟中斷處理中,把數(shù)據(jù)包從RingBuffer中摘下來,送到協(xié)議棧的處理,再之后送到用戶進(jìn)程socket的接收隊(duì)列中。
BMP文件的結(jié)構(gòu)其實(shí)非常簡單,就是兩個(gè)結(jié)構(gòu)體+一個(gè)可選的調(diào)色板+位圖數(shù)據(jù)。