原创 kafka1 -kafka簡單介紹

Kafka是一種分佈式消息隊列,爲何要使用消息隊列?是基於異步通信的訴求,爲了服務之間相互解耦,同時避免在高併發時完成流量削峯的作用。 一 基礎概念: producer:消息生產者、 consumer:消息消費者、 topic:一個隊列

原创 算法1-實現一個特殊棧,在實現棧的基本功能基礎上,O(1)時間複雜度獲取最小元素。

思路: 1 兩個棧 data、min 2 往data中入數時同時往min中入數 3 當新入元素小於、等於棧頂元素時,元素既入data又入min;當新入元素大於棧頂時新元素入data不入min 4 彈棧時當data棧頂與min棧頂相同時都

原创 文件系統之標準IO與系統調用IO

IO操作是我們程序運行的基礎,數據在程序運行結束時需要保存就必須使用IO操作。IO主要包括兩類:標準IO與系統IO 一 標準IO 標準IO是爲了避免跨平臺移植引起的不必要異常,指定的一系列標準函數,無論linux、windows都可以使用

原创 Yii2模型-Model

Model是 MVC模式中的一部分, 是代表業務數據、規則和邏輯的對象。 模型主要包括以下關鍵內容: 屬性:代表可像普通類屬性或數組 一樣被訪問的業務數據; 屬性標籤:指定屬性顯示出來的標籤; 場景:根據實際的業務請求設置驗證規則,

原创 軟件開發1-IOC控制反轉

設計準則中的開閉原則,即無需修改任何一行程序代碼,將功能加入至原先的應用程序中,也可以在不修改任何程序的情況下移除。 某地區有各種不同的商店,每家商店都賣四種水果:蘋果十元一個、香蕉二十元一個、橘子三十元一個、西瓜四十元一個,顧客可以在任

原创 算法2-生成窗口最大值數組

* 數組arr與整數w,w從左往右劃,求每次窗口內的最大值,並返回結果數組 * 思路: * 1 一個雙端隊列輔助,存儲數組下標 * 2 右邊界滑動,彈出所有小於、等於新入元素的數 * 3 左邊界滑動,對頭過期 * 4 隊列首元素一定是最

原创 C語言容易暈的問題

C語言三座大山:數組、指針、函數。 單個概念並不複雜,但是概念互相套在一起就容易迷糊。基於此,整理如下: 1 數組:一批內存位置相鄰的變量。 指針與數組: 因爲指針可以用來做運算,所以通常可以用指針來指向數組。 int a[3] = {1

原创 Yii2模塊簡介

Yii2中模塊是軟件的獨立單元,由模型,視圖,控制器和其他組件組成。模塊必須從屬與某個應用主體。 1 模塊聲明 通常在web.php文件中生成,聲明方式如下: 聲明一個名爲api的模塊,同時在目錄項下創建module文件,創建api文件

原创 Yii2行爲

行爲是 yii\base\Behavior 或其子類的實例, 可以無須改變類繼承關係即可增強一個已有的 組件 類功能。所有組件類均可以使用行爲。通常註冊行爲有以下方式: 1  在組件類內部定義behaviors()函數,返回Behavio

原创 PHP1-php垃圾回收機制

爲了避免內存泄露,需要探究php垃圾回收機制。 一 寫時複製 function cow() { $a='仙士可'.time(); $b=$a; $c=$a; //這個時候內存佔用相同,$b,$c都將指向$a的內存

原创 進程1-進程相關知識點

一 概念: 進程是運行中的程序,是操作系統分配資源的最基本的單位。 二 進程標識符pid:     類型pid_t     命令ps     進程標識符是順序依次向下使用     getpid();     getppid(); 三 進

原创 Call to a member function ** on null

Call to a member function ** on null,通常是因爲 ** 方法的實體對象爲空導致的,一般推薦使用get_class(對象名),來獲取 ** 方法對象所對應的class類來反查對象的初始化情況。

原创 線程3-線程池思想

通常多線程編程任務分發包括:分塊法、交叉分配法、池類分配法。池類分配法能夠最有效地避免計算任務分配不均勻的情況。 線程池思想包括: 1 main線程負責分發任務 2 全局變量num:num>0時有待計算任務,num=0時無算任務需要上游

原创 線程2-線程同步

概念 線程是可以共享資源變量的,當多個線程同時寫一個資源變量時就會出現線程同步問題造成讀寫不一致。通常採用鎖機制來實現線程同步。 1 互斥量:鎖機制,確保同一時刻只有一個線程訪問共享資源。 常用API包括: int pthread_mu

原创 線程1-線程基本操作

一 基本概念: 線程是進程執行的最基本單位,是一個正在運行的函數,通常包括:main線程與兄弟線程。線程間通信共享進程虛擬內存空間。 常用的線程標識: pthread_t 常用api: 比較線程pid: int pthread_equ