
C++
柒-步
柒步成师
展开
-
PostQueuedCompletionStatus函数
PostQueuedCompletionStatus函数,向每个工作者线程都发送—个特殊的完成数据包。该函数会指示每个线程都“立即结束并退出”.下面是PostQueuedCompletionStatus函数的定义: BOOL PostQueuedCompletionStatus( HANDLE CompletlonPort, DW0RD dwNumberOfBytesTr转载 2015-03-13 11:12:25 · 2343 阅读 · 0 评论 -
深度探索I/O完成端口
引言要想编写一个高性能的服务器应用程序,必须实现一个高效的线程模型。让太少或者太多的服务器线程来处理客户的请求,都可能导致性能问题。例如,如果一个服务器创建单个线程来处理所有的请求,那么客户端可能长期等待而得不到响应,因为服务器同一时刻只能忙于处理一个请求。当然单个线程也能并发处理多个请求,当I/O操作被启动时,它可以从一个请求切换到另一个请求,但是这种结构相当复杂,并且不能充分利用多处理转载 2015-03-13 11:12:08 · 472 阅读 · 0 评论 -
完成端口(I/O completion)原理
异步过程调用(apcs)问题:只有发overlapped请求的线程才可以提供callback函数(需要一个特定的线程为一个特定的I/O请求服务)。完成端口(I/O completion)的优点:不会限制handle个数,可处理成千上万个连接。I/O completion port允许一个线程将一个请求暂时保存下来,由另一个线程为它做实际服务。并发模型与线程池:转载 2015-03-13 11:08:21 · 656 阅读 · 0 评论 -
分布式模式之Broker模式
问题来源:创建一个游戏系统,其将运行在互联网的环境中。客户端通过WWW服务或特定的客户端软件连接到游戏服务器,随着流量的增加,系统不断的膨胀,最终后台数据、业务逻辑被分布式的部署。然而相比中心化的系统,复杂度被无可避免的增大了,该如何降低各个组件之间的耦合度。挑战:需要保证可伸缩性、可维护性、可更新性,需要将服务划分为各个相对独立的组件,组件被分布式的部署,它们之间通过进程间通转载 2015-04-15 13:41:25 · 1266 阅读 · 0 评论 -
C++多进程并发框架FFLIB
原文C++多进程并发框架FFLIB 三年来一直从事服务器程序开发,一直都是忙忙碌碌,不久前结束了职业生涯的第一份工作,有了一个礼拜的休息时间,终于可以写写总结了。于是把以前的开源代码做了整理和优化,这就是FFLIB。虽然这边总结看起来像日记,有很多废话,但是此文仍然是有很大针对性的。针对服务器开发中常见的问题,如多线程并发、消息转发、异步、性能优化、单元测试转载 2015-04-15 13:48:21 · 2004 阅读 · 0 评论 -
C++开源日志库:log4cplus
说起日志系统,不得不提大名鼎鼎的Log4j,特别是使用Java的人们,可以说是无人不知无人不晓无人不用。Log4j以其简单的使用方式(引入一个jar包,一行代码即可调用),灵活(可通过配置文件随意配置),功能强大(多个级别,可配置多个输出目的地,Console,File,系统日志,远端的LogServer等等,可订制日志格式,自动产生,删除日志文件)等等等等特性,一直是Java日志系统的首选。转载 2015-03-31 17:22:34 · 815 阅读 · 0 评论 -
AcceptEx
Winsock2的其他供应商不一定会实现AcceptEx函数。同样情况也包括的其他Microsoft的特定APIs如TransmitFile,GetAcceptExSockAddrs以及其他Microsoft将在以后版本的windows里。 在运行WinNT和Win2000的系统上,这些APIs在Microsoft提供的DLL(mswsock.dll)里实现,可以通过链接mswsoc转载 2015-03-11 16:17:30 · 1354 阅读 · 0 评论 -
C++站点
收藏的一些C++站点国外http://www.boost.org/http://www.codeguru.com/http://www.codebeach.com/http://www.codecogs.com/http://www.codeproject.com/?cat=2http://www.hotscripts.com/category/scripts/转载 2015-09-08 10:15:59 · 630 阅读 · 0 评论 -
codeblocks调试问题
windows安装codeblocks后,可以编译运行,但是无法断点调试,显示缺少gdb.exe或者cdb.exe,从设置里选择调试器,只有gdb32.exe或者gdbserver.exe,这两个都没法在64位windows下调试运行。解决方案是:安装gdb,安装方法是下载mingw-get-setup.exe并安装,勾选gdb的系列选项,安装完成后,codeblocks会自动识别并把gdb....原创 2019-04-22 14:52:17 · 1251 阅读 · 0 评论