- 博客(6)
- 资源 (1)
- 收藏
- 关注
转载 linux多线程编程--信号量和条件变量 唤醒丢失事件
关于linux下信号量和条件变量的使用,在很多地方都可以找到相关文章,信号量、条件变量、互斥锁都是线程同步原语,在平时多线程编程中只要知道一两种就可以轻松搞定,我也是这么认为的,但是今天发现,有时还是有区别的。 在实现多线程编程中,其中有些东西是可以互相转换的,比如使用信号量可以实现条件变量,关于这三者的基本用法不在累述,我的博客中也有相关介绍,这里介绍条件变量丢失唤醒事件的事
2015-10-31 22:59:34 2881 2
转载 无锁编程与有锁编程的性能对比与分析
最近维护的一个网络服务器遇到性能问题,于是就对原有的程序进行了较大的框架改动。改动最多的是线程工作模式与数据传递方式,最终的结果是改变锁的使用模式。经过一番改进,基本上可以做到 GMb 网卡全速工作处理。在 性能达标之后,一度在想有没有什么办法使用更加轻量级锁,或者去掉锁的使用,为此搜索一些相关的研究成果,并做了一些实验来验证这些成果,因而就有这篇文章。希望有做类似工作的同行可以有所借鉴。如果有人
2015-10-29 15:30:17 459
转载 C++中正确使用PRId64
例子参考高性能流媒体服务器SRS:https://github.com/winlinvip/simple-rtmp-serverSRS中广泛使用PRId64实现32和64位系统通用。c++使用PRID64,需要两步:包含头文件:定义宏:__STDC_FORMAT_MACROS,可以通过编译时加-D__STDC_FORMAT_MACROS,或者在包含文
2015-10-29 13:49:39 1714
转载 实例学习gcc+gdb+make
1 小侃GCC在正式使用gcc之前,我们先来侃侃gcc是啥玩意儿?历史现在的GCC是GNU Compiler Collection的简称,既然是Collection,就是指一些工具链的集合。最初的GCC(当时还只有C编译器,GCC还是GNU C Comiler的简写)是由Richard Stallman开发的,Stallman也是GNU工程的首创者,那时还是在198
2015-10-28 13:02:30 702
原创 gearman worker源码分析(1)
它是分布式的程序调用框架,可完成跨语言的相互调用,适合在后台运行工作任务。最初是2005年perl版本,2008年发布C/C++版本。目前大部分源码都是(Gearmand服务job Server)C++,各个API实现有各种语言的版本。这几篇源码分析从gearman worker分析开始着手,不扯淡了,先上一段源码看看:稍微熟悉gearman的同学都清楚,gea
2015-10-10 20:11:30 1055
转载 查找gearman非法注册函数进程
使用gearman时,由于gearman没有权限控制,导致任何能连接到job server的程序都能注册函数,尤其在开发阶段,可能有来自不同机器上的程序连接了job server注册了一些测试函数。当使用gearadmin –status查看query status时,会发现一些不知所云的注册函数,如:test 0 0 1那怎样知道这个test函数
2015-10-08 17:17:13 701
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人