1、多线程安全:12306买票,显示还有票,但是实际上没有了。解决措施:加锁操作(本身违背多线程思想)可能导致死锁发生(A需要B占用的资源,B需要A占用的资源,如果加锁,则对象对数据操作期间无法被剥夺,会陷入循环等待)
2、资源管理原则 RAII
class Lock{
Lock(){
pread_mutex_lock();
}
//伟大的析构函数!跟对象生命周期一致,作用域结束,抛出异常
~Lock(){
pread_mutex_unlock();
}
};
//数据库打开关闭,网络打开与关闭
3、Resource Acquisition Is Initialization
资源获取即是初始化