原创 按順序獲取第k個值
兩種算法都不算好,但是在一定情況下,第二種明顯由於第一種 從一個數組中獲取到第k個大小的值 <?php //設一個題目確定其中第k個最大者,我們稱它爲選擇問題 //第四個最大值 $arr = [3,4,5,1,2,4,6,1
原创 一個信號量問題的思考
信號量的學習 不多說直接上代碼 sem_wait部分的代碼: #include <stdio.h> #include <stdlib.h> #include <semaphore.h> #include <fcntl.h> #inclu
原创 讀寫鎖
#讀寫鎖 爲什麼要使用讀寫鎖? ``` I.多個線程讀寫變量會出現內存安全問題 2.很多時候的應用場景我們需要多個線程讀寫變量或者文件,這個時候我麼如果一起進行讀操作並不需要去加鎖,只有當多個線程一起讀變量,但是又有一個線
原创 ipc 總結上
#2019年ipc知識點回顧 ####首先我們要注意的是ipc對象的可持續性 隨進程的持續性: ``` 管道、FIFO、posix互斥鎖、posix條件變量、posix讀寫鎖、fcntl記錄上鎖、posix基於內存的信號量、tcp、udp
原创 c++實現ini配置文件的解析
關鍵存儲數據結構 用的是map嵌套 // // Created by zhanglei on 19-8-14. // #ifndef LOGSENTRY_INIFILECONFIG_H #define LOGSENTRY_I
原创 phpCon2019心得總結
劉徵的核心:我記憶比較深的就是劉徵老師的健康檢查,指標 日誌 和應用追蹤 胡波的核心:就是降級和斷溶 桶哥的話我印象比較深的大概就是細節是魔鬼,多個服務之間recv的雙圓圈理論 陳雷 老師一個團隊的學習也是比較佩服的 郭新
原创 互斥鎖和條件變量
互斥鎖和條件變量 怎樣多個線程或者多個進程同步活動。爲允許在線程或進程之間共享數據,同步是必須的,互斥所和條件變量是同步的基本組成部分。 互斥鎖和條件變量出自posix.1的線程標準,它們總是可用來同步一個進程內的各個線程的。如果一個互斥
原创 makefile 書寫規則和書寫命令
makefile 書寫規則 makefile中應該有一個目標 其他的目標是被這個目標所連帶出來的,如果有很多個目標,那麼make的第一個目標會稱爲最終目標 規則舉例: foo.o:foo.c defs.h #foo模塊 cc -
原创 跟我一起寫makefile第一部分
先編譯頭文件 生成object文件,再進行連接生成二進制文件 如果有8個.c文件和三個.h文件 我們要寫一個makefile說明書寫規則。 1.如果這個工程沒有編譯過,那麼我們要把所有的.c文件編譯並且連接 2.如果這個工程的某幾個c文件
原创 system消息隊列
System消息隊列 System V消息隊列使用消息隊列標識符。只要有權限任何進程可以往消息隊列寫,任何進程也可以往消息隊列讀 在裏維護了一個消息頭 struct msqid_ds{ struct ipc_perm; struct ms
原创 建造者模式
建造者模式 概念 建造者模式(Builder Pattern)使用多個簡單的對象一步一步構建成一個複雜的對象。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。 一個 Builder 類會一步一步構造最終的對象。該 Bui
原创 第一節:go語言入門
go語言入門 demo: package main import "fmt" func main() { fmt.Printf("hello, world\n") } run: go run helloworld.go
原创 信號處理函數總結
消息處理函數總結 sigemptyset sigemptyset用來將參數set信號集初始化並清空。 #include<signal.h> int sigemptyset(sigset_t *set); sigaddset sigad
原创 第五章 Posix 消息隊列
第五章 Posix 消息隊列 5.1 概述 消息隊列可認爲是一個消息鏈表。有足夠寫權限的線程可以往消息隊列中放置消息,有足夠讀權限的現場可從隊列中取走消息.每一個消息都是一個記錄,他由發送者賦予一個優先級.在某個進程往一個消息隊列寫入消息
原创 valgrind
valgrind 前幾日公司大牛告訴我寫c經常需要檢查讀寫錯誤可以用valgrind。。。大牛就是好哈哈哈哈哈 安裝 sudo apt install valgrind 使用: USE_ZEND_ALLOC=0 valgrind