原创 c++常見面試問題總結

c++和C語言的區別 C語言是面向結構性語言,C++是面嚮對象語言 c語言是c++的子集,c++包含了c語言的全部詞法和語法內容,比c語言多出了類。   程序運行的保存的五個區 堆 棧 常量 全局變量 代碼區   什麼是面向對象:注重的是

原创 臨界區 CRITICAL_SECTION 死鎖問題解析

臨界區爲非內核對象,優點速度快,效率高,缺點時間不好控制,有可能第二個線程永遠進不去 所以需要人爲的在執行完原子操作後sleep()把進入的線程的時間片讓出來  和mutex相似,也是進去一個就關門了  唯一不同的是兩個函數的使用時候存在

原创 mysql學習筆記心得

mysql 安裝:官網下載mysql安裝包,解壓後,在當前bin目錄下打開cmd 執行mysqld --isntall mysql -uroot  windows登錄本機mysql (windows下默認沒有密碼) mysql --ins

原创 解決程序啓動0xc00007b報錯

按照以下順序:依次按照以下排列順序嘗試: 1、排除庫不對,確保你程序中使用第三方dll和你程序位數匹配,如果是Qt程序,先確認你使用的Qt庫是32還是64,和你程序是否匹配。 2、上面排除後依然無法解決,下載vs的運行庫 我的資源裏包含各

原创 C11線程 mutex lambda表達式 鎖衛視

#include "iostream" #include "thread" #include "mutex"       //c++11提供的互斥鎖 跨平臺 using namespace std; int g_iticket = 100

原创 WSAasyncSelect 異步選擇消息模型

WSAasyncSelect 異步選擇消息模型適用於簡單對效率要求不太高的windows窗口程序。 該模型windows爲用戶封裝好了線程調用,以消息的方式通知accep/recv等事件是否已經發生,不用一直阻塞等待。 下面是這種模型的簡

原创 TCP文件傳輸-二級流水線高效模式具體代碼實現 mutex 條件變量condition_variable futrue運用

相比與上一篇那種線程同步方式,上篇利用async的生命週期作爲同步點。而實際情況中 子線程不會一直退出和不斷的開啓,我門需要人爲的控制線程同步且退出. 這裏我門採用隊列的方式,主線程接收完數據往隊列裏面投遞,通知子線程,子線程負責取數據

原创 C++11 future async異步調用函數 基礎用法瞭解

/*解決主線程和子線程後期同步的問題 類似於windows中的事件*/ #include "iostream" #include "future" #include "thread" using namespace  std; int m

原创 UDP單播 組播 廣播 區別及簡單實現

無論是tcp還是udp 服務器都必須綁定prot、Ip,客戶端可以有選擇性。 udp單播: 單播只能是發送方往接收方指定的IP 端口發送數據 組播需具備的條件  1、接收方設置組播屬性及組播號  2、發送方往接收方定義的組播地址發送  3

原创 TCP文件傳輸-二級流水線高效模式具體代碼實現 future實現雙緩衝區切換同步

雙緩衝區 二級流水線高效模式,這樣可以保證程序在不停的接收和寫文件,文件IO操作和網絡recv同時進行 本客戶端採用了在C++11中引入了async異步調用函數,其封裝了異步(多線程)實現的複雜過程。採用futrue 對雙緩衝區切換的同步

原创 TCP文件傳輸-單緩衝區模式

單緩衝區模式文件傳輸模式相比於數組的好處是,文件IO操作和網絡recv同時進行,這樣提高效率 下面來看看代碼: 服務器代碼如下: #include <Winsock2.h> #include <iostream> #include <t

原创 Windwos下的互斥鎖,事件以及事件的手動重置和自動重置的區別

事件的自動重置:兩個線層同時訪問一個函數,該函數會對全局變量進行操作,用事件進行互斥,假設這個事件初始化有信號   在經過WAITFORSIGALOBJECT()後事件就會變爲沒有信號,另外一個線程無法進去,第一個線程操作完需設置爲有信號

原创 TCP三次握手分析 以及字符串的發送接收 客戶端採用異步選擇事件模型

有圖有真相 直接上圖   簡述Tcp的特點:上圖吧   簡述 tcp的三次握手 Connet  客戶端請求連接  發送字段syn = 1 Accept    服務器確認接收客戶端的連接 回覆syn = 1 ack=1; Write  

原创 C++ 跨平臺promise 類似於windows中的事件

/*解決主線程和子線程後期同步的問題 類似於windows中的事件*/ #include "iostream" #include "future" #include "thread" using namespace  std; int m

原创 WSAEventSelect模型 記錄分享

WSAEventSelect模型是也稱異步事件選擇模型Windows Sockets提供的一個有用異步I/O模型。該模型允許在一個或者多個套接字上接收以事件爲基礎的網絡事件通知。Windows Sockets應用程序在創建套接字後,調用W