原创 Linux基礎——線程

1、線程概念 1.1、線程和進程的對比 線程和進程類似,二者都有PCB 二者的底層函數都是一樣的,都是使用到clone 進程可以變成線程 在Linux下,線程最是小的執行單位;進程是最小的分配資源單位 .從內核裏看進程和線程是一

原创 Linux網絡編程——高併發服務器之select模型

1、前言 1.1、IO模型 下面用服務器比成車站,客戶端比喻成小明。 傳統阻塞模型:小明去車站買票,沒買到票就在車站等待,直到有車票爲止。 非阻塞模型:小明去車站買票,沒票的話,他沒過一段時間就去看看有沒有票,沒有票就回去。他消

原创 Linux基礎——線程同步之信號量

1、信號量概念 進化版本的互斥鎖,在互斥鎖中,我們用的是兩個線程,而這個信號量是可以N個線程。 本質是一個計數器 信號量大於0,則信號量- - 信號量等於0,造成阻塞 既可以在線程中使用,也可以在進程中使用 他

原创 Linux網絡編程——高併發服務器之epoll模型

事前準備(可忽略) 在這之前我們需要先看看自己的虛擬機能夠連接最大客戶端數(可以說是設置最大打開文件描述符限制),並且進行修改。按一下步驟進行輸入(不同版本的虛擬機查出來的數目可能會有些差異,但是這些指令都是可以用的) 輸入ul

原创 Linux網絡編程——線程池架構

線程池概念及用途 概念:實質就是一個裝着線程的的容器,線程池一種多線程的處理方式,處理過程間任務添加到隊列,然後創建線程後自動啓動這些任務。 比喻:這有點像去街上借的共享充電寶,收集這些充電寶的盒子就是線程池,充電寶就是線

原创 Linux——Bug:基於Linux的Live555不能獲取ip地址

在網上看了很多博主關於Live無法獲取IP的方式,10篇裏面9篇都是一樣的,博主給出自己的設置,然後也沒有說根據自己的怎麼改,反正像我我這種菜鳥是改不明白。 臨時獲取IP的方式 當我們運行Live555服務器的時候,有的人就是會出

原创 Linux基礎——線程同步之互斥鎖

1、線程同步的必要性 共享資源,多個線程都可對共享資源操作 線程操作共享資源的先後順序不確定 處理器對存儲器的操作一般不是原子操作       比如下面一個例子:兩個線程同時對一個變量操作(假如對一個變量i進行加1),有可能就

原创 Linux基礎——線程同步之條件變量

1、條件變量 條件變量必須配合着互斥鎖使用,互斥鎖查看-》線程同步(互斥鎖) 1.1、條件變量概念 條件變量是什麼: 本身不是鎖,滿足某個條件,像加鎖一樣,造成阻塞,與互斥量配合,給多線程提供會所。 爲什麼要用條件變量:

原创 QT——入門之數據庫(2)

這一節,我講一下數據庫怎麼在QT中使用。我這裏是以單例模式使用。 代碼書寫 步驟1: 首先,我們在建立好一個工程後,我們要在pro文件中加上sql模塊 步驟2:建立一個無繼承關係的類CSDB,寫入一下代碼 CSDB.h文件 #i

原创 Linux基礎——管道

管道創建主要是兩種:無名管道和有名管道(命名管道) 無名管道(pipe函數) 需要的頭文件:#include <unistd.h> 函數: int pipe(int pipefd[2]); 主要創建無名管道的方式:

原创 Linux網絡編程——socket編程

1、預備知識 1.1、套接字socket 套接字是在進行網絡連接時最重要的部分之一! 套接字socket就相當於是,一個文件操作符,不佔空間。但是這個套接字對應這兩個緩衝區:發送端緩衝區和接收端緩衝區,如下圖所示。兩個套接字的連接

原创 Linux網絡編程——網絡基礎(簡單概述)

網絡設計模式(分爲兩種) C/S架構:C、S分別代表client和server,這類設計要開發客戶端服務器,協議採用自定義,常見的C/S架構有QQ登入,LOL等,必須要下載客戶端的應用,他們的特點是數據提前緩存。 B/S架構:w

原创 Linux基礎——內存共享映射(mmap函數的使用)

進程間的通信就像兩人的交流,需要一個“公共場所”常見的有1、內核 2、內存 3、磁盤。 mmap 用途:進程間的通信 使用原理:把磁盤的一個空間映射到內存中,如下圖所示 函數:void *mmap(void *addr

原创 QT——使用network連接自己的虛擬機(1)

1、事前準備 1.1、下載VMware Workstation Pro 大家如如果有就不用再下載了,如果沒有下載的話,個人建議是下載高些的版本,我以前較低的版本一直會出現虛擬機繁忙的情況,高版本的虛擬機和低版本沒什麼差別,但是更好

原创 Linux基礎——圖形模式切換

這裏我使用的是Fedora虛擬機 虛擬機創建 打開VMware Workstation Pro點擊創建新的虛擬機,具體安裝步驟看鏈接 虛擬機工作模式(運行級別)切換 一般情況下,我們進入的都是文本模式下(相對圖形模式,這個比較不好