原创 QT中 uic 工具的使用
使用QT設計師設計的窗口部件,用uic 工具可以轉換成C++代碼: (1)首先用QT設計師設計一個窗口,選擇一個英文目錄下,保存爲gotocelldialog.ui 我的文件保存在:F:\qt-program\gotocell (
原创 STL案例代碼
//1.指針迭代器 #include <iostream> #include <algorithm> using namespace std; #define SIZE 100 int iarray[SIZE]; int main
原创 15.基於UDP協議的聊天室程序
使用UDP協議完成一個聊天室程序的小項目,大部分代碼都有註釋,一看就能看到的. 實現的功能: (1)查看/顯示已經登陸的用戶信息 (2)向已登陸的用戶發送消息
原创 13.epoll
一.用C++ 和 epoll 實現一個服務器 用C++ 實現一個epoll併發服務器 #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #in
原创 POSIX線程(二)
一. 線程屬性 (1) 初始化與銷燬屬性 int pthread_attr_init(pthread_attr_t *attr); int pthread_attr_destroy(pth
原创 POSIX信號量與互斥鎖
3種用於線程同步的機制: POSIX信號量,互斥鎖和條件變量 一.POSIX信號量 常用的POSIX信號量函數如下 int sem_init(sem_t *sem, int pshared, unsigned int value)
原创 二叉排序樹
1.二叉排序樹的定義 二叉排序樹(Binary Sort Tree)又稱二叉查找(搜索)樹(Binary Search Tree)。其定義爲:二叉排序樹或者是空樹,或者是滿足如下性質的二叉樹:①若它的左子樹非空,則左子樹上所有結點的值均
原创 用OTL庫連接讀取access數據庫
一.環境及創建一個數據庫 編程環境:VS2010 數據庫:access2007 OTL庫載地址:http://otl.sourceforge.net/home.htm 使用access2007創建一個數據庫 MetGS.accdb ,表名
原创 線程簡介
一. 什麼是線程 在一個程序裏的一個執行路線就叫做線程(thread).更準確的定義是:線程是"一個進程內部的控制序列" 一切進程至少都有一個執行線程. 二. 進程與線程 進程是資源競爭的基本單位 線程是程
原创 POSIX條件變量
一.條件變量 當一個線程互斥地訪問某個變量時,可能發現在其他線程改變狀態之前,它什麼也做不了.例如,一個線程訪問隊列時,發現隊列爲空,它只能等待,直到其他線程將一個節點添加到隊列中,這種情況需要條件變量. 條件變量是利用線
原创 posix 消息隊列
System V IPC 消息隊列 共享內存 信號量 POSIX IPC 消息隊列 共享內存 信號量 互斥鎖 條件變量 讀寫鎖 自旋鎖 文件鎖 Po
原创 System V 消息隊列(一)
一、消息隊列 1、消息隊列提供了一個從一個進程向另外一個進程發送一塊數據的方法 2、每個數據塊都被認爲是有一個類型,接收者進程接收的數據塊可以有不同的類型值 3、消息隊列與管道不同的是,消息隊列是基於消息的,而管道
原创 共享內存簡介
一.共享內存 共享內存區是最快的IPC形式,這些進程間數據傳遞不再涉及到內核,換句話說是進程不再通過執行進入內核的系統調用來傳遞彼此的數據. 上圖需要經過四次數據複製 使用共享內存,只需要兩次系統調用. 二、m
原创 System V 信號量(一)
一.信號量 信號量和P,V原語由Dijkstra提出 信號量 互斥:p,v在同一個進程中 同步:p.v在不同進程中 信號量值含義 s>0:s表示可用資源的
原创 System V消息隊列(三)
利用消息隊列實現回射客戶/服務器 隊列達到複用的目的 類型區分: 服務器用1標識類型,客戶端用自己的進程 標識類型 對於服務器端來說,接收到一個消息結構體的類型如果爲1,表示是客戶請求,而mtex 字段的前4個字節存放