2016-6-25 杂感

C++11多了个delete关键字,准确的说形容类中的成员函数时,多了个delete关键字,有用吗,不敢妄评。不过还是常识性的觉得设置为private就好了,大家如果有什么好的理解,欢迎拍砖!

std::mutex 和 std::lock_guard通过RAII特性来方便了程序的书写,提供了共享数据的保护,但是坑仍然存在,你非要传个类成员的指针出去,不加保护,这也没办法,哈哈,指针大法好!之前一直纠结于mutex的实现,在多线程的环境下,到底mutex能不能提供数据真正的保护,即同一时刻只有一个线程能获得数据的访问权,现在看来,多虑了,答案是可以,放心好了,mutex的实现的话听说pthread_mutex加了个系统调用fmutex好像,在用户态实现,但是想想,因为有进程阻塞,可能会调用yield函数来释放运行权限。具体的没看,英语学的不好,文档内容又太多。


同样的,在使用STL时,一个需要注意的点就是STL不是线程安全的,怎么办呢,自己搞

template<typename T>
class vector_thread_safe
{
public:
	vector<T> & push_back(T &t)
	{
		std::lock_guard<std::mutex>g(m);
		vec.push_back(t);
		return vec;
	}
	size_t size()
	{
		std::lock_guard<std::mutex>g(m);
		return vec.size();
	}
private:
	vector<T>vec;
	std::mutex m;
};


自己封装为线程安全的,如果上面代码有问题,直接批评,别客气!


stack的pop如果因为拷贝构造函数申请内存空间失败该怎么办,还是原子性的概念,这时元素不应该pop成功,stack恢复原来的状态,自己写着玩的程序不可能出现这种情况,大数据的考验。


烦,什么都不相干,一会去打打球,放松下。


为了实现理想,需要放弃的事情可多了,看似诙谐的一句话,背后你懂,我懂!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值