原创 按順序獲取第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