在使用mutex的時候,我們往往會陷入因為忘記釋放mutex而導致的麻煩,這個給程式設計師帶來很多的麻煩,根據c++標準可知,區域性變數在生命週期結束時,一定會被析構掉(除非在異常處理過程中,另外乙個異常在析構函式中被丟擲),所以我們不妨使用這種特性來完成mutex的鎖定和解鎖功能。它的基本思路時在建構函式中獲取鎖,在析構函式中釋放鎖。我定義了乙個模板類,用於此功能,希望對網友有所幫助。
// author : wang yanqing
// module : sync
// version : 0.01
// date : 03-aug-2005
// reversion:
// date :
// email : [email protected]
#ifndef _auto_lock_h
#define _auto_lock_h
#include
template
class autolock
~autolock()
}inline bool trylock()
return locked;
}inline void lock()
inline void unlock()
};#endif
JDBC資源正確釋放
rs.close stat.close conn.close 此處釋放資源必須按照一定的順序釋放,越晚獲取的越先關閉。所以先關閉 rs物件,再關閉stat物件,最後關閉conn物件。另,為了避免上面的程式丟擲異常,釋放資源的 不會執行,應該把釋放資源的 放在finally塊中.trycatch ex...
ArcEngine正確釋放資源
ae中對mdb,sde等資料庫操作時,開啟後卻往往不能及時釋放資源,導致別人操作提示物件被鎖定。很多帖子說了很多原理,看的也煩且不實用,比如一句話概括的用system.runtime.interopservices.marshal.releasecomobject object o 釋放,說的很不清...
AE正確釋放開啟資源
ae中對mdb,sde等資料庫操作時,開啟後卻往往不能及時釋放資源,導致別人操作提示物件被鎖定。很多帖子說了很多原理,看的也煩且不實用,比如一句話概括的用system.runtime.interopservices.marshal.releasecomobject object o 釋放,說的很不清...