摘要:·概要: 最早接触的是windows平台的线程--需要使用windows的API,然后转战Linux平台—Linux平台的线程没有windows平台的线程高效的原因是Linux平台主要以进程为主而线程则是通过进程实现的(我的理解)。 线程从某种程度上来说就是一个函数--也就是通常说的线程函数,而这个函数是可以在进程中同时运行的--多线程的概念。入口函数main函数就是一个线程--主线程,而...
阅读全文
摘要:·概述: 是在学习boost::asio的时候看到bind等新内容,感觉挺新奇的,就简单的学习了下。现在学习一本boost库的书,就在温故下。 其实bind等内容也不算是新的内容,STL库中也有相似的功能,不过都没用过--看来对标准库的学习还不彻底啊。 ·要点: result_of组件: 封装的是函数返回类型。 ref库: 简单的理解就是"智能引用"--可对照智能指针。 我...
阅读全文
摘要:·概述: boost发展到现在的版本,包含的功能已经很多了。不过本着用到的学些,没用到的了解的学习方法,记录下需要学习的知识点。 ·要点: ·noncopyable: 原理就是将复制构造函数和赋值操作符私有化来阻止复制操作。 使用noncopyable的原因:统一使用而节省代码、noncopyable的名字就很好的传达出了不可拷贝的信息。 简单的应用中就可以自己实现的。 ·异常系...
阅读全文
摘要:·概述: 主要是两个库:smart_ptr库和pool库。 smart_ptr库主要解决的问题是指针的内存泄漏和垃圾回收问题;pool则是解决内存分配问题。 感觉还是smart_ptr库比较好用一些,而其中的shared_ptr数据最常用和最好用的技巧。 ·要点: smart_ptr库: 由技巧提升为技术的。主要成员scoped_ptr/scoped_array,shared_pt...
阅读全文
摘要:概述: 这是《Boost程序库完全开发指南》书中第一个介绍的库。将书中的代码实践了一遍,但感觉没想象中的那么好--可能是我的期望太高了吧。不过还是将学习的收获和感受记录下来。 学习: ·timer库: 就是一个使用了C函数clock()的简单的计时器,可以参照源代码实现自己的计时器。而且在实践例子出现问题,就是linux平台上clock()函数计算的是cpu的时间,而使用sleep()和...
阅读全文
摘要:除了标准库提供的智能指针std::auto_ptr外,boost中存在六个智能指针:scoped_ptr,shared_ptr,intrusive_ptr,weak_ptr和scoped_array,shared_array。 相比于std::auto_ptr不能用作STL容器的元素,Boost的智能指针则填补了这个空白。--何时需要智能指针a).资源的共享所有权中:两个或多个对象必须同时使用第三个对象的情况。b).编写异常安全的代码时:在异常抛出时没有资源泄漏,并保证程序状态的一致性。c).避免常见错误,例如资源泄漏时:比如忘记调用delete函数,或没有正确调用delete[]等。--..
阅读全文