原创 造輪子之異常的封裝

異常的封裝 這裏展示的是自定義異常類,繼承與exception類。 #include <stdexcept> namespace youren { ////////////////////////////////////////

原创 造輪子之線程控制類的封裝

線程控制類的封裝 線程常用方法 int pthread_join(pthread_t thread, void **retval); int pthread_detach(pthread_t thread); pthread_t

原创 造輪子之線程鎖監控類的封裝

線程鎖監控類的封裝 互斥鎖一個明顯的缺點是它只有兩種狀態:鎖定和非鎖定。而條件變量通過允許線程阻塞和等待另一個線程發送信號的方法彌補了互斥鎖的不足,它常和互斥鎖一起配合使用。使用時,條件變量被用來阻塞一個線程,當條件不滿足時,線程

原创 造輪子之鎖的封裝

鎖異常的封裝,繼承與自定義的異常類即可。 struct YR_Lock_Exception : public YR_Exception { YR_Lock_Exception(const string& buffer) : YR

原创 造輪子之線程鎖的封裝

線程鎖的封裝 線程鎖的基本操作: 1. 創建鎖 int pthread_mutex_init(pthread_mutex_t*mutex, const pthread_mutexattr_t * attr); attr:創

原创 造輪子之線程條件類的封裝

線程條件類的封裝 線程條件的基本操作 #include <pthread.h> //條件的銷燬和初始化 int pthread_cond_destroy(pthread_cond_t *cond); int pthread_con

原创 造輪子之線程池的設計與封裝

線程池的設計 線程池,顧名思義就是一個存放了已經創建好的線程資源的池子,當有任務提交給線程池的時候,池中的某一個線程就會執行該任務,執行完畢之後就會回到池子中等待下次執行任務。 從上圖中我們可以看到,實現一個線程池應該具備下列要

原创 造輪子之線程安全隊列的封裝

線程隊列的封裝 C++中雖然有std::queue、std::deque這些隊列容器,但是不是線程安全的,因此我們需要封裝一個線程安全的線程隊列。 定義 template <class T, class Container = s

原创 造輪子之常用函數的封裝

常用函數的封裝 常用函數的封裝: 字符串操作常用函數 大小寫轉換函數 分割字符串函數 字符串轉換函數 字符串替換函數 時間操作常用函數 幫助類定義 字符串操作封裝 class YR_Common { public:

原创 線程條件類的封裝

線程條件類的封裝 線程條件的基本操作 #include <pthread.h> //條件的銷燬和初始化 int pthread_cond_destroy(pthread_cond_t *cond); int pthread_con

原创 線程鎖的封裝

線程鎖的封裝 線程鎖的基本操作: 1. 創建鎖 int pthread_mutex_init(pthread_mutex_t*mutex, const pthread_mutexattr_t * attr); attr:創

原创 鎖的封裝

鎖異常的封裝,繼承與自定義的異常類即可。 struct YR_Lock_Exception : public YR_Exception { YR_Lock_Exception(const string& buffer) : YR

原创 異常的封裝

異常的封裝 這裏展示的是自定義異常類,繼承與exception類。 #include <stdexcept> namespace youren { ////////////////////////////////////////

原创 C++新特性之Variadic Template

可變參數模板的定義 可變參數模板是至少有一個參數寶的模板,參數包則是可以接受零個或者更多模板實參的模板形參,其格式如下: template <class ...T> class classname; template <class

原创 C++新特性之Type Alias、noexcept、override、final

1. Type Alias(類型別名)and Template Alias(模板別名) 在C++11中,我們不僅可以爲類型定義別名,還可以對模板進行定義別名。 別名聲明的語法 1. using identifier = type-id