- 博客(7)
- 资源 (44)
- 收藏
- 关注
原创 boost库在工作(18)线程之三
前面的例子里, 由于cout输出并不是多线程安全的,如果多个线程同时输出,可能导致死锁的出现,因此在那个函数添加了一个boost::mutex锁,以便同步多个输出的线程,这样就不会造成死锁了。在这个函数里,还使用一个类boost::lock_guard,这个类是一个自动锁的类,所谓的自动锁,就是在构造函数里调用上锁函数,在析造函数里调用解锁函数,这样在这个类boost::lock_guard声明的
2013-03-31 11:40:01 3535 1
原创 boost库在工作(17)线程之二
前面的例子,还是过于简单,只能学会使用一个线程来调用一个函数来运行。接着下来,我们提高一点要求,使用两个或两个以上的线程来运行同一个函数。多个线程运行同一个函数,其实就是线程池的概念,因为一个线程只能在一个CPU在里运行,如果有四个CPU,那么最高效率就是有八个线程运行,一般来说是CPU的个数的两倍是最高效率的线程模型。因此,我们开发的软件会在不同的客户电脑上运行,不同的客户那里的电脑配置又不一样
2013-03-30 22:09:04 5370
原创 boost库在工作(16)线程之一
学习线程,得先了解线程是什么,线程就是程序执行中运行的最小单元,其实它就是一种轻量的进程,运行的效果跟进程一样,但它的创建和删除比进程要快得多。在现代的操作系统里,都是以线程作为最小的调度单位。在任何一个程序里,都至少有一个线程在运行的,如果没有线程,这个程序是没有办法执行起来。因此,线程就相当汽车里的发动机,如果汽车没有发动机,就没有动力输出,也就没有办法跑起来。因而,线程也与发动机一样是重要,
2013-03-24 19:44:59 3315
原创 boost库在工作(15)绑定器与函数对象之三
前面已经可以优美地解决两个参数的函数给算法for_each调用了,但是又会遇到这样的一种情况,当需要三个参数或者三个以上的参数给算法for_each调用呢?从STL里的绑定器bind1st,显然是不行了,因为它最多只支持两个参数,那还有什么办法呢?这时就需要使用boost库里强大的绑定器bind了。它不仅适用的情况比STL库里的多,还更加方便,更加人性化。下面就来看看怎么样绑定三个参数的类成员函数
2013-03-17 09:03:28 2856
原创 boost库在工作(14)绑定器与函数对象之二
在STL库里使用算法for_each可以实现容器里每个元素都进行运算的操作,但for_each要求函数对象只能接收一个参数,如果需要传入两个函数时,就需要使用绑定器了。下面设想有这么一个需求,学校里老师给软件开发人员提了一个需求,要求把学生的数学成绩计算平均分,最后还需要计算每个人成绩跟平均分的差距,以便让每个学生看到自己成绩的好与坏。面对这个需求,就可以使用STL里的算法实现如下://使用bin
2013-03-11 21:23:45 2672
原创 boost库在工作(13)绑定器与函数对象之一
有一天,有一个同事过来问我,有没有办法把两个参数变成一个参数,然后传送给STL的算法模板使用。我想了一下,要把两个参数变成一个参数,只有一个办法,就是使用绑定器。其实绑定器就是把两个或两个以上的参数变成一个参数,也就是变成函数对象的方式。在STL模板库里提供两个绑定器:bind1st和bind2nd,这两个绑定器只支持两个参数,如果是两个以上的参数,就无能为力了。下面先来看看这两个绑定器的使用例子
2013-03-08 21:37:36 3056
原创 boost库在工作(12)引用计数的智能指针intrusive_ptr
当我们在维护旧代码时,很多情况是身不由己的,想从头来开发,又需要时间过多,投入成本过多,老板当然不愿意。想继续使用旧的代码,又需要投入过多的维护成本。要想在这种情况下,提高代码的维护性,又减少出错,因而想引入智能指针管理。比如已经存在引用计数的对象时,如果再想使用智能指针shared_ptr来管理,显然达不目标了,那么怎么办呢?就这样放弃智能指针的使用吗?显然不行,有没有更好的方法呢?在boost
2013-03-03 18:53:25 4807
python抓取天气并分析 实例源码
2017-08-28
书《深度学习》
2017-03-13
国产8051模拟器
2016-09-10
tinyxml2配套源码
2016-06-27
selenium的浏览器驱动
2016-06-14
开源鸿蒙4.0不能进入桌面的补丁
2024-03-17
开源鸿蒙 4.0 RK3566开发板配置
2024-03-17
svm_hog_data.rar
2020-03-02
实现numpy的C++库扩展
2019-11-24
python web py入门配套源代码
2018-02-23
webpy演示例子1
2018-02-21
胶囊模型的代码
2018-02-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人