自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 多线程同步

同步手段:mutex、自旋锁、原子操作、条件变量、信号量、barrier(内存屏障)mutex:尝试获取锁,如果获取不到,内核将此线程放入队列、此线程休眠、当锁释放后,内核将mutex取出自旋锁:一直处于忙的状态,相对于Mutex不会挂起,此线程一直检测锁是否释放,释放获取锁,效率比mutex高,因为没有从挂起状态到运行状态的切换CAS的原子操作:在任意时刻又且仅能有一个线程对某个变量操作...

2018-12-10 21:01:36 131

原创 epoll的监听多个fd的read和send操作

核心代码如下m_bRunning = true; // first let's increase the limit of open files int maxconn = 100000; struct rlimit srl; srl.rlim_cur = maxconn + 10; srl.rlim_max = maxconn + 10; if (setrlimit(RLIM...

2018-12-06 21:11:05 2155

原创 服务器关闭客户端连接操作

所有玩家的数据都保存在map<fd, NetCache>里边,玩家在登陆成功后,会将fd和NetCache保存起来,同时将fd设置在玩家自己的身上,那么在什么时机会关闭fd连接呢?关闭连接操作如下void NetHandler::doCloseConnection(int fd){ if (fd > 0) { FD_CLR(fd, &amp...

2018-12-05 11:22:46 3532

翻译 Reactor模式处理高并发

1、epoll的同步编程方式如果是listenfd,那么放入epoll继续监听如果是可读fd,那么读取fd,并且处理读时间int main(int argc, char** argv){epoll_ctr(efd, ADD, fd);while(1){ epoll_wait(, event, ....); for(;;) { if(fd == listenr_scoket)...

2018-12-04 21:30:23 771

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除