国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】

這篇具有很好參考價值的文章主要介紹了學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

引言:

北京時間:2023/4/20/7:48,鬧鐘6點和6點30,全部錯過,根本起不來,可能是因為感冒還沒好,睡不夠吧!并且今天是星期四,這個星期這是第二篇博客,作為一個日更選手,少些了兩篇博客,充分?jǐn)[爛,但是擺爛具體也是有原因的,星期一的時候莫名高燒,頭昏腦漲的感覺,睡了一整天,這種發(fā)燒的感覺我已經(jīng)很久沒有體會過了,就算是疫情的時候我也沒有體會到,這次發(fā)燒的主要原因可能就是星期六打羽毛球的時候把身體打的有點虛脫了,然后又沒怎么注意保暖,最終星期天在舍友的一晚上16度空調(diào)襲擊下導(dǎo)致,以前沒感覺生病算什么,但是從這次生病之后,我發(fā)現(xiàn)生病真的非常的不友好,但是作為一個人,又怎能不生病呢?生老病死,人之常態(tài),人活著最大的天敵真的就是病痛,在病痛面前一切看起來都是那么的微不足道,今天精神狀態(tài)良好,就還是犯困,并且可能是因為吃了退燒藥的原因,咳嗽嚴(yán)重,別的一切正常,So,讓我們抓緊時間來學(xué)習(xí)一下有關(guān)進程信號的知識吧!

學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】

回顧共享內(nèi)存

上篇博客,我們使用各種系統(tǒng)調(diào)用接口,構(gòu)建出了進程間通過共享內(nèi)存進行通信的場景,明白了共享內(nèi)存的基本原理等知識,但是共享內(nèi)存在細(xì)節(jié)方面還有很多需要我們注意的地方,如:共享內(nèi)存的大小,注意: 系統(tǒng)默認(rèn)一個單位共享內(nèi)存的大小是4096字節(jié)(4kb),并且因為創(chuàng)建共享內(nèi)存的系統(tǒng)調(diào)用接口,是允許我們自己設(shè)置創(chuàng)建大小的,所以當(dāng)我們創(chuàng)建的共享內(nèi)存的大小為4097,超過了4096,那么此時操作系統(tǒng)就會幫我們開辟8kb的空間,但這8kb中只有4097允許正常使用,如果超過了4097依然會報錯;如:共享內(nèi)存的使用,注意: 共享內(nèi)存的使用,不需要調(diào)用任何而外接口,因為進程和共享內(nèi)存之間已經(jīng)通過shmat建立了關(guān)聯(lián),只要任何進程和該共享內(nèi)存建立了關(guān)聯(lián),那么它都可以直接看到該共享內(nèi)存,也就是直接使用該共享內(nèi)存,不需要任何別的操作,此時該進程就可以對該共享內(nèi)存進行數(shù)據(jù)的寫入或者是讀取,并且明白,因為進程是通過關(guān)聯(lián)對應(yīng)的共享內(nèi)存,直接對共享內(nèi)存進行讀寫操作,所以它比使用命名管道和匿名管道進行進程間通信的速度是更快的(因為它不需要進行緩沖區(qū)的拷貝);如:共享內(nèi)存的缺陷,注意: 由于進程虛擬地址空間直接和共享內(nèi)存關(guān)聯(lián),可以直接對共享內(nèi)存進行讀寫操作,所以共享內(nèi)存沒有保護機制,也就是兩個進程之間沒有讀寫規(guī)則,進程可以隨時讀取,隨時寫入,不像是命名管道或者是匿名管道,具有讀寫規(guī)則,一個進程必須寫入完成,另一個進程才可以讀?。ň彌_區(qū)起作用),也就是說共享內(nèi)存是不支持任何的互斥同步機制

總:共享內(nèi)存適用于大型、高效率的數(shù)據(jù)共享場景,并且在多進程同時操作同一個數(shù)據(jù)塊,實現(xiàn)進程間的高速交互

淺談消息隊列

感興趣的同學(xué)可以參看該鏈接:什么是消息隊列或消息隊列詳解

什么是消息隊列,首先明白,消息隊列是由操作系統(tǒng)維護,然后我們通過特定的接口,讓兩個進程看到同一消息隊列,最后再通過消息隊列提供的特定的接口,讓進程將自己的數(shù)據(jù)塊可以鏈接到消息隊列中,最后進程再根據(jù)特定的編號,獲取到對方進程對應(yīng)的數(shù)據(jù)塊,具體如下圖所示:
學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】

明白了上述知識,消息隊列的基本使用原理我們就知道了,接下來就讓我們了解一下有關(guān)消息隊列的系統(tǒng)調(diào)用接口,如下:

創(chuàng)建消息隊列:

學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】
作用:用于創(chuàng)建或打開一個消息隊列,頭文件:#include<sys/types.h> #include<sys/ipc.h> #include<sys/msg.h>,調(diào)用方式:int msgget(key_t key, int msgflg);參數(shù)一眼看過去都不陌生,就是key值和標(biāo)識符,key值通過ftok()接口獲得,msgflg通過宏定義,代表各種權(quán)限,也就是創(chuàng)建隊列或者打開隊列的方式,

刪除消息隊列方法:

指令:ipcrm -q msqid

接口:msgctl()

具體使用方式如下圖所示:
學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】
具體調(diào)用方式:int msgctl(int msqid, int cmd, struct msqid_ds* buf);一眼看過去和shmctl的調(diào)用原理是相同的,第一個參數(shù)表示該消息隊列的標(biāo)識符,第二個參數(shù)表示控制消息隊列的方式 ,第三個參數(shù)表示該接口如何對消息隊列進行控制(本質(zhì)上就是使用第三個參數(shù)指針,去修改指向結(jié)構(gòu)體中的屬性數(shù)據(jù)

使用消息隊列傳輸數(shù)據(jù):
接口:msgsnd()/msgrcv()

具體使用方式如下:
學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】
第一個接口,傳送數(shù)據(jù)接口,具體調(diào)用方式:int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);第一個參數(shù)同理消息隊列的標(biāo)識符,第二個參數(shù)表示某個進程需要發(fā)送給消息隊列的數(shù)據(jù)塊的起始地址,第三個參數(shù)表示發(fā)送數(shù)據(jù)塊的大小,第四個參數(shù)同理,表示的就是以什么方式發(fā)送對應(yīng)的數(shù)據(jù)塊(默認(rèn)設(shè)置為0)
第二個接口,讀取數(shù)據(jù)接口,具體調(diào)用方式ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg);第一個參數(shù)同理為消息隊列標(biāo)識符,第二個參數(shù)同理表示讀取消息隊列中某個數(shù)據(jù)塊的起始地址,第三個參數(shù)同理表示需要讀取的數(shù)據(jù)塊的大小,第四個參數(shù)表示的是消息隊列中的數(shù)據(jù)塊的編號,也就是說可以通過這個參數(shù)讀取消息隊列中特定編號的數(shù)據(jù),第五個參數(shù)同理,表示讀取的方式(默認(rèn)設(shè)置為0)

淺談信號量

在學(xué)習(xí)什么是信號量之前,我們先了解幾個概念,如下:

操作系統(tǒng)中經(jīng)典概念
并發(fā)是指系統(tǒng)中同時存在多個獨立的活動單元,例如在多核CPU上運行多個進程、線程等,并發(fā)可以提高系統(tǒng)資源的利用率和性能,但也需要避免資源競爭和數(shù)據(jù)不一致等并發(fā)問題
互斥是指同一時刻只允許一個活動單元使用共享資源,其他活動單元必須等待該資源釋放后才能繼續(xù)進行,互斥機制通常通過信號量、互斥鎖等實現(xiàn)
同步是指多個獨立活動單元之間按照一定的規(guī)則或順序進行交互和協(xié)調(diào),以保證數(shù)據(jù)的正確性和一致性,常見的同步方式包括臨界區(qū)、條件變量等
原子性是指操作執(zhí)行過程中不會被中斷或干擾,要么全部執(zhí)行成功,要么全部失敗并回滾到操作前的狀態(tài),原子操作通常使用鎖、原子指令等實現(xiàn),保證了數(shù)據(jù)的一致性和正確性,避免了競爭問題

簡單了解了上述的概念之后,此時我們就正式談?wù)勈裁词?strong>信號量,首先我們都知道,進程間想要完成通信就一定要構(gòu)建環(huán)境,也就是看到同一份"共享資源",所以在操作系統(tǒng)中是同時存在各種各樣的共享資源,此時我們可以將大量的共享資源進行分類,如,那些只能通過互斥訪問,也就是只允許一個執(zhí)行流進行訪問的,我們就叫做臨界資源,并且把那些訪問臨界資源的代碼稱為臨界區(qū),所以臨界區(qū)就是指在系統(tǒng)中一段對共享資源進行訪問或修改的代碼區(qū)域

了解了上述有關(guān)臨界區(qū)的相關(guān)知識,此時我們引入一個場景(電影院買票場景),回答一個問題,就是為什么看電影需要買票?
買票的本質(zhì)是什么?明白了這兩個問題,我們就可以很好的搞懂信號量的知識,所以結(jié)合日常生活常識,我們知道,買票的本質(zhì)是為了對座位資源進行預(yù)定分配,并且在先到先得的前提下,保證不會多買票給顧客,也就是讓座位資源合理分配,那么此時如何可以保證不多買票呢?也就是如何保證資源合理被分配呢?這就涉及到了我們的信號量,明白:信號量本質(zhì)就是一個非負(fù)整數(shù)計數(shù)器,用于記錄資源的可用數(shù)量,所以當(dāng)我們電影院在賣票的時候,只要使用一個計數(shù)器(信號量),每賣出一張票,計數(shù)器減減1,最終減到0為止,這樣不就可以很好的控制座位資源的合理分配了嗎?所以明白,信號量本質(zhì)就是一個用于記錄共享資源剩余量的計數(shù)器(例:int count = 100;),本質(zhì)就是為了實現(xiàn)系統(tǒng)內(nèi)部共享資源分配更加合理和并且提高效率而已,所以間接明白,任何一個執(zhí)行流,想要訪問共享資源,都不能直接訪問,必須要先申請信號量資源(也就是買票),讓操作系統(tǒng)知道,對應(yīng)共享資源對應(yīng)的數(shù)據(jù)已經(jīng)被使用或者是正在被使用,從而實現(xiàn)互斥原理,不會造成沖突現(xiàn)象,同理,當(dāng)你對對應(yīng)的共享資源訪問完畢(電影看完了),此時應(yīng)該讓信號量加1,也就是告訴操作系統(tǒng),對應(yīng)的共享資源沒有被使用,別的進程可以訪問,從而提高進程訪問效率

明白了上述知識之后,此時可以知道,想要訪問共享資源,首先要申請信號量資源,并且明白,申請信號量資源肯定是以代碼的形式,所以明白,當(dāng)我們使用代碼,也就是一定的接口去訪問信號量資源,那么此時這個程序,也就是這個進程,也就是系統(tǒng)內(nèi)部所有的進程如果想要訪問信號量資源,那么這些進程肯定是需要先看到信號量資源,此時就會導(dǎo)致一個問題,信號量的本質(zhì)是為了分配共享資源,那么信號量資源由誰來分配呢?有人可能會想,信號量不是計數(shù)器嗎?那它不是可以通過加加或者減減來分配嗎?這個想法是錯誤的,因為只要是共享資源,那么此時這個資源的訪問是不受互斥等機制控制的,因為互斥等機制本就需要依賴于信號量對資源的控制,所以此時信號量資源是允許同時被進程訪問,此時導(dǎo)致信號量資源沒有保護機制,所以為了解決這個問題,在進行信號量的設(shè)計時,設(shè)計師就將信號量設(shè)計成具有原子性的資源,這樣就可以在信號量保證別的資源被合理分配的同時,實現(xiàn)自己也被合理分配

總: 原子操作是指一個不可被中斷或分割的操作,它要么全部完成,要么都不執(zhí)行,不會因為并發(fā)、中斷或多任務(wù)等條件而被打斷或出現(xiàn)競態(tài)條件,信號量的加減操作通常需要保證原子性,以避免多個進程或線程同時對同一信號量進行修改的情況,也就是說,當(dāng)多個進程或線程同時訪問共享資源時,如果對信號量的加減操作不是原子操作的話,就有可能會導(dǎo)致訪問順序混亂,從而引起程序運行錯誤、數(shù)據(jù)損壞以及死鎖等嚴(yán)重問題,因此對信號量加減操作實現(xiàn)原子性是十分重要的

明白,當(dāng)我們以后想要讓某一個進程訪問某一個資源,那么它必須先要訪問信號量資源,所以得出結(jié)論:如果此時兩個進程需要進行通信,以前我們都知道,它們肯定是需要先看到同一份資源,然后才可以進行通信,但是當(dāng)我們知道了信號量的知識之后,此時就明白,如果想要讓不同的進程同時訪問同一個資源,那么此時這兩個進程首先都需要看到同一份信號量資源,只要看到了同一份信號量資源,它們才有可能看到同一份共享資源

明白了上述知識之后,此時我們就來看一下有關(guān)信號量使用的接口,如下:

創(chuàng)建一個信號量:semget()

使用說明如下:
學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】
頭文件:#include<sys/types.h>/#include<sys/ipc.h>/#include<sys/sem.h>,調(diào)用方式:int semget(key_t key,int nsems,int semflg);第一個參數(shù)同理是一個信號量標(biāo)識符,第二個參數(shù)此時表示的是創(chuàng)建信號量的個數(shù),第三個參數(shù)同理是一個位圖結(jié)構(gòu),表示的就是創(chuàng)建該信號量的方式和權(quán)限

刪除信號量:

指令:ipcs -s 查看當(dāng)前所有的信號量
指令:ipcrm -s semid

接口:semctl()

具體使用方式如下:
學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】
第一個參數(shù)semid,同理表示的就是對應(yīng)信號量的標(biāo)識符,第二個參數(shù)表示的是對創(chuàng)建出來的多個信號量編號之后,我具體要控制的某一個已經(jīng)編號的信號量,第三個參數(shù)同理表示semctl接口需要執(zhí)行的操作類型,也就是功能的選擇,想要使用該接口獲取到信號量的什么部分,此時就可以通過該接口控制

信號量加減:

接口:semop()

使用說明如下:
學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】
semop是用于操作信號量的系統(tǒng)調(diào)用函數(shù)之一,它可以實現(xiàn)對信號量進行P、V操作,從而解決多進程或多線程之間的互斥和同步問題,調(diào)用方式:int semop(int semid, struct sembuf *sops, unsigned nsops); 第一個參數(shù)semid: 要操作的信號量標(biāo)識符,由semget函數(shù)返回,第二個參數(shù)sops: 一個指向sembuf結(jié)構(gòu)體數(shù)組的指針,表示要對哪些信號量進行操作,sembuf結(jié)構(gòu)體包括三個成員變量,分別是:
sem_num:要操作的信號量在信號量集合中的下標(biāo)(從0開始)
sem_op:對信號量執(zhí)行的操作,可以是負(fù)值、零或正值。其中,負(fù)值代表P操作(也就是申請信號量資源)、正值代表V操(也就是歸還信號量資源))、零代表無操作
sem_flg:控制操作行為的標(biāo)志,默認(rèn)為SEM_UNDO表示在進程異常終止時撤銷未完成的操作,還可以使用IPC_NOWAIT表示非阻塞操作等
第三個參數(shù)nsops: 表示要執(zhí)行操作的sembuf結(jié)構(gòu)體的數(shù)量,也就是表示要操作的信號量的數(shù)量

總: 具體來說,當(dāng)一個進程需要訪問共享資源時,它會調(diào)用semop函數(shù)執(zhí)行P操作,該操作會將信號量的值減1,如果值小于0,則當(dāng)前進程會被阻塞,直到有其他進程執(zhí)行V操作使信號量的值增加為止,而當(dāng)一個進程釋放了共享資源時,它會調(diào)用semop函數(shù)執(zhí)行V操作,該操作會將信號量的值加1,同時喚醒等待P操作的進程,因此,semop函數(shù)可以實現(xiàn)多個進程之間對共享資源的互斥訪問(簡單理解就是對一個臨界資源進行獨立使用,吃獨食),從而協(xié)調(diào)它們的行為,避免出現(xiàn)數(shù)據(jù)競爭或其他并發(fā)問題。

系統(tǒng)內(nèi)部如何對IPC進行管理

通過對上篇博客共享內(nèi)存有關(guān)的知識,進而我們可以推出,系統(tǒng)無論是對消息隊列,還是信號量,本質(zhì)都和共享內(nèi)存一樣,通過先描述,再組織的方式進行管理,也就是構(gòu)建出一個一個的結(jié)構(gòu)體,最后對結(jié)構(gòu)體進行增刪查改,如shmctl()、msgctl()、semctl()接口一樣,具體如下圖所示:
學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】
如上圖所示,結(jié)構(gòu)體中都包括了IPC對象的基本屬性和信息,所以如果某一個進程想要使用上述的IPC對象進行進程間通信或者訪問共享資源,那么此時就可以讓該進程通過特定的接口(shmctl()、msgctl()、semctl())去訪問這些結(jié)構(gòu)體,進而來查詢或修改IPC對象的屬性,最后達到特定的目的,具體原理如下圖所示:
學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】文章來源地址http://www.zghlxwxcb.cn/news/detail-426912.html

總結(jié):有關(guān)進程間通信的知識,到這就結(jié)束啦!快快樂樂擺爛走起!

到了這里,關(guān)于學(xué)習(xí)系統(tǒng)編程No.22【消息隊列和信號量】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 學(xué)習(xí)系統(tǒng)編程No.7【進程替換】

    學(xué)習(xí)系統(tǒng)編程No.7【進程替換】

    北京時間:2023/3/21/7:17,這篇博客本來昨天晚上就能開始寫的,但是由于筆試強訓(xùn)的原因,導(dǎo)致時間用在了做題上,通過快2個小時的垂死掙扎,我充分意識到了自己做題能力的缺陷和運用新知識的缺陷,所以我需要把重心給轉(zhuǎn)移一下了,以后做題才是我的頭號目標(biāo),雖然我在

    2024年02月21日
    瀏覽(27)
  • 學(xué)習(xí)系統(tǒng)編程No.16【進程間通信】

    學(xué)習(xí)系統(tǒng)編程No.16【進程間通信】

    北京時間:2023/4/9/20:44,昨天,也就是這個周末的星期六,就是傳說中的藍橋杯,哈哈哈!擺爛,做題方面真不怎么行,可惜,當(dāng)初可能是年少輕狂或者說是沒什么經(jīng)驗閱歷,希望在有了這次的經(jīng)歷之后,明年的今天,能夠更加從容吧!誰讓我們平時不怎么做題呢?準(zhǔn)確的來

    2023年04月15日
    瀏覽(24)
  • 學(xué)習(xí)系統(tǒng)編程No.25【核心轉(zhuǎn)儲實戰(zhàn)】

    學(xué)習(xí)系統(tǒng)編程No.25【核心轉(zhuǎn)儲實戰(zhàn)】

    北京時間:2023/6/16/8:39,實訓(xùn)課中,大一下學(xué)期最后有課的一天,還有兩天就要期末考啦!目前什么都還沒有復(fù)習(xí),不到星期天晚上,咱不慌,小小掛科,豈能攔得住我補考,哈哈哈!小事,莫慌,該篇博客出爐之時,就是我復(fù)習(xí)之日,臨陣磨槍不快也光,這方面我是專業(yè)的

    2024年02月11日
    瀏覽(20)
  • 學(xué)習(xí)系統(tǒng)編程No.17【vscode實戰(zhàn)】

    學(xué)習(xí)系統(tǒng)編程No.17【vscode實戰(zhàn)】

    北京時間:2023/4/11/7:25,昨天11點洗澡,洗完直接睡,導(dǎo)致現(xiàn)在頭發(fā)愈發(fā)不能看,So,平頭時刻將要來臨,頭發(fā)太長真的很不方便,昨天已經(jīng)更文啦!這個星期一定要實現(xiàn)日更,因為我發(fā)現(xiàn),不日更,或者說更文不積極,根本上不了熱榜,所以今天又有新文章和大家見面哦!

    2023年04月14日
    瀏覽(30)
  • 學(xué)習(xí)系統(tǒng)編程No.12【基礎(chǔ)IO】

    學(xué)習(xí)系統(tǒng)編程No.12【基礎(chǔ)IO】

    北京時間:2023/3/28/7:19,周二,早八的一天,難過!終于進入C站周創(chuàng)作榜啦!開心!給大家推薦一首歌《盛夏的果實》,給我的感覺非常的放松,勞逸結(jié)合,音樂非它莫屬,為了下周周榜可以繼續(xù)前進, 今天我們就來學(xué)習(xí)一下基礎(chǔ)IO的知識吧! 從上篇博客,我們明白,重定向

    2023年04月21日
    瀏覽(55)
  • 學(xué)習(xí)系統(tǒng)編程No.33【生產(chǎn)消費模型】

    學(xué)習(xí)系統(tǒng)編程No.33【生產(chǎn)消費模型】

    北京時間:2023/7/22/14:27,現(xiàn)實和預(yù)期往往相差是巨大的,哈哈哈!白天睡不醒,晚上睡不著,就像一個夜貓子一樣。熬夜耍手機,我真的是專業(yè)的,已經(jīng)連續(xù)好久沒有正常睡過覺了。懷念學(xué)校里的日子,每天都有人激勵我早睡和早起,此處@謝xx,不知他最近的學(xué)習(xí)狀態(tài)如何,

    2024年02月14日
    瀏覽(22)
  • 學(xué)習(xí)系統(tǒng)編程No.32【線程互斥實戰(zhàn)】

    學(xué)習(xí)系統(tǒng)編程No.32【線程互斥實戰(zhàn)】

    北京時間:2023/7/19/15:22,昨天更新完博客,和舍友下了一會棋,快樂就是這么簡單,哈哈哈!總體來說,擺爛程度得到一定的改善,想要達到以前的水準(zhǔn),需要一定的契機,畢竟人生在世,快樂最重要是吧!更文帶給我的快樂已經(jīng)沒有那么多了,雖然欠了非常多的作業(yè),非常

    2024年02月16日
    瀏覽(24)
  • 學(xué)習(xí)系統(tǒng)編程No.14【動靜態(tài)庫】

    學(xué)習(xí)系統(tǒng)編程No.14【動靜態(tài)庫】

    北京時間:2023/4/3/7:06,剛剛晨跑回來,為了擺脫困意,刷了一下視屏,哈哈哈!我發(fā)現(xiàn)我每次刷視屏都是被迫的,都是看到某個感興趣的標(biāo)題,然后點進去一看,就不能自拔了,所以我下次得把消息提醒給全部關(guān)掉,煩人;并且全宿舍英文4級都報上了,就我沒報上,真的是

    2023年04月09日
    瀏覽(29)
  • 學(xué)習(xí)系統(tǒng)編程No.15【深入動靜態(tài)庫】

    學(xué)習(xí)系統(tǒng)編程No.15【深入動靜態(tài)庫】

    北京時間:2023/4/5/11:04,天空陰沉,非常符合今天清明節(jié)的身份,不知道是大部分學(xué)校都放假一天,還是就我們學(xué)校,反正清明節(jié)回不了家,昨天上了一個中國優(yōu)秀傳統(tǒng)文化的課,老師給我們講了李白和杜甫的婉轉(zhuǎn)一生,發(fā)現(xiàn),原來在古代文人墨客的社會地位并不是很高呀!

    2023年04月15日
    瀏覽(27)
  • 學(xué)習(xí)系統(tǒng)編程No.27【深入信號處理】

    學(xué)習(xí)系統(tǒng)編程No.27【深入信號處理】

    北京時間:2023/6/27/21:43,剛剛更新完這個星期的第一篇博客,現(xiàn)在剛好趁熱打鐵,看看寫到11點左右,該篇博客能完成多少,并且今天和我預(yù)想的一樣,通過早睡,成功在7點起床,但是由于一些列原因,導(dǎo)致我們起床洗漱,吃完飯之后,又睡過去了,并且一睡就睡到了10點,

    2024年02月13日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包