- 博客(12)
- 资源 (9)
- 收藏
- 关注
转载 Michael &Scott 无锁队列 C++ 实现
最近在研究无锁算法, 参照Michael and Scott的伪码,实现了个c++版本。参考 http://www.cs.rochester.edu/research/synchronization/pseudocode/queues.html伪代码是: structure pointer_t {ptr: pointer to node_t, count: unsign
2015-10-28 21:32:55 647
转载 实现无锁的栈与队列
怎样实现一个无锁队列,网络上有很多的介绍,其中流传最广,影响最大的恐怕就属于以下两篇论文: a) "Implementing lock free queue" by John.D.Valois b) "Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms" by M.
2015-10-27 20:59:24 492
转载 无锁队列的实现
关于无锁队列的实现,网上有很多文章,虽然本文可能和那些文章有所重复,但是我还是想以我自己的方式把这些文章中的重要的知识点串起来和大家讲一讲这个技术。下面开始正文。关于CAS等原子操作在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Compare & Set,或是 Compare & Swap,现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是
2015-10-27 13:18:02 362
转载 TCP 的那些事儿(转载)
无论是PC客户端开发还是移动开发,或是Web开发, 网络编程都是很重要的一块, 深入理解TCP/IP和HTTP协议是一个优秀程序员的必备技能。看到酷壳老大正好写了篇相关文章, 正好拿来学习, 转自 http://coolshell.cn/articles/11564.htmlTCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦
2015-10-23 18:16:28 1564
转载 游戏服务器:到底使用UDP还是TCP
http://blog.jobbole.com/64638/在编写网络游戏的时候,到底使用UDP还是TCP的问题迟早都要面对。一般来说你会听到人们这样说:“除非你正在写一个动作类游戏,否则你就用TCP吧” 或者是 “你能够在MMO游戏中用TCP,因为魔兽世界就用的TCP!”遗憾的是,这些观点都没有反映这个问题的复杂性。背景首先,说明一下,我之前主
2015-10-22 15:15:46 683
原创 linux编程总结
1、LINUX下修改配置文件(如最大连接数等配置)提示文件只读,其实是权限不够,这时应进入root模式进行修改即可 Ubuntu:sudo su root,回车后在输入su root即可
2015-10-07 20:48:48 350
转载 Linux下高并发socket最大连接数所受的限制问题
http://www.chinaitlab.com/linux/administer/958961.htmlLinux下高并发socket最大连接数所受的限制问题 1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP
2015-10-07 20:39:41 311
转载 Ubuntu root 密码忘记-恢复
方法一: 如果用户具有sudo权限,那么直接可以运行如下命令: #sudo su root #passwd #更改密码 或者直接运行sudo passwd root命令就可以直接更改root密码。 有关sudo su的区别: 1.共同点:都是root用户的权限; 2.不同点:su仅仅取得root权限,工作环
2015-10-07 19:35:39 303
原创 linux下使用socket绑定(bind)时:address already in use
1、使用函数避免:在bind函数前使用int opt = 1; setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));2、使用CTRL+Z结束程序:导致程序处于后台暂停状态,其实端口还是被占用中(程序中没有while等类似循环,则不用CTRL+Z就会自动结束,可忽略此点) 解决办法:a、使用CTRL+C结
2015-10-07 15:58:04 740
转载 Linux GDB 常用命令
http://blog.csdn.net/comedate/article/details/8073252Linux GDB 常用命令如下:1.启动和退出gdb(1)启动:gdb ***:显示一段版权说明; (*** 表示可执行程序名)(2)退出:quit。有的时候输入quit后会出现相关提示:类似于“(y/n)”,输入y2.显示和查找程序源代码
2015-10-07 14:48:11 309
原创 linux中ctrl+z和ctrl+c的区别
1、ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.ctrl+c是强制中断程序的执行,而ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行.例如:当你vi一个文件是,如果需要用shell执行别的操作,但是你又不打算关
2015-10-07 14:34:28 1491
原创 Linux 如何用vim命令把编辑文件的几行内容拷贝到一个新文件
在用vim编辑文件时,常常会用到一个功能:把编辑文件的几行内容拷贝到一个新文件中。怎么实现该功能?假设编辑文件nginx.conf ,把该文件的51至91行拷贝到新文件./vhost/res.help.com.conf中,详细实现,请参阅下面示例: :51,91w!./vhost/res.help.com.conf 再拓展下,如何把nginx.conf
2015-10-06 15:17:03 7024
golang调试程序dlv.exe(delve)
2021-04-17
日本人 发明的胡牌算法,比普通的拆解法更好
2018-06-29
windows下C++实现的HTTP web 服务器
2017-10-12
多处理器编程的艺术
2016-05-23
socket select及IOCP模型的实现
2015-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人