C++中使用到的資源可能很多,并且一些資源擷取後還必須釋放歸還給系統, 列舉幾個如:
1. 打開的檔案句柄
2. 資料庫連接配接
3. 互斥鎖
4. 動态配置設定new出來的記憶體
5. 網絡socket連接配接
C++中有智能指針,比如shared_ptr,可以自動釋放指針指向的資源。
這裡不詳細說shared_ptr用法。
而是自己實作一個以對象管理資源的例子。
例子:線程互斥鎖的加鎖、解鎖。
1. 利用對象到構造函數,析構函數來自動完成加鎖、解鎖。将編譯器預設提供的無用函數禁用掉。
2. 線程執行函數
3. 整體代碼
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuUWYxYmZhR2MiNjY3QGMjFGZlNTOzUWZjJGO2YzM1MWMfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
View Code
c++智能指針可以參考網上的例子:
http://www.cnblogs.com/lanxuezaipiao/p/4132096.html