社区
网络编程
帖子详情
请问完成端口为什么多出6个线程
yomi
2003-09-29 11:15:00
我用两个线程调用了GetQueuedCompletionStatus,在加上一个界面一个监听连接。
但是我在任务管理器里却看到了10个线程。请教!
...全文
78
16
打赏
收藏
请问完成端口为什么多出6个线程
我用两个线程调用了GetQueuedCompletionStatus,在加上一个界面一个监听连接。 但是我在任务管理器里却看到了10个线程。请教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yomi
2003-10-11
打赏
举报
回复
结贴,送分。
yomi
2003-10-09
打赏
举报
回复
三位结贴给分。
ADO什么的我是用了,可是还没有调用到。
programming server-side以及windows network programming我都看过了。
均没有提到线程的事。
CPU占用我原来也想是循环造成的,可是我搜索了所有的循环,都不对啊。
而且在客户端不循环连接的时候,CPU占用是很低的。
sunhuiNO1
2003-10-05
打赏
举报
回复
估计你用了ADO什么的,
photoman
2003-10-02
打赏
举报
回复
完成端口得工作线程是你控制开得,多出来得线程可能是程序里其他地方你调用得某些函数开得,cpu占用率高可能就是你得程序问题了,随便一个while就能把cpu占用率提到100%,一般完成端口占用率不会高过60%得,sleep最好还是用sleepex比较好一点
sevencat
2003-10-02
打赏
举报
回复
完成端口还是看看那本服务器SIDE编程好了,那里面有对这个的讲解,是我看到的完成端口不多的资料之一。
可能createioocompletionport中也顺便生成了几个线程。
你又有两个工作线程另外还有个主线程。
http://www.bjdt2.com/bbs/book/e5/other/microsoft/programming.htm
有上面这本书下。
了解工作原理后可能好点吧。
modnar
2003-09-30
打赏
举报
回复
我的意思是用AppWizard生成一个什么都不做的程序,
运行后看看他的线程数是不是应该为0
yomi
2003-09-30
打赏
举报
回复
philis,
为什么要sleep啊?
lightest,
我猜可能是GetQue...这个加入完成端口队列的函数。
yomi
2003-09-30
打赏
举报
回复
你认为这些线程是我开的?我跟踪过所有的CreateThread,我的确只开了三次。
modnar
2003-09-30
打赏
举报
回复
我倒,你写一个不CreateThread的程序运行后看看它有几个线程.
yomi
2003-09-30
打赏
举报
回复
我想也是,结贴后给你分。
还有一个问题,我发现使用完成端口的程序cpu占用很高,
我的程序的循环都是阻塞方式的,而且只有一个客户端与它连接(不停的连接,收发数据,断开),而客户端的CPU占用就很低。
再请教。
Lightest
2003-09-30
打赏
举报
回复
有的API调用将启动后台线程
例如某些socket函数,netbios,gethostbyname等,你可以在一些可疑API设置断点跟踪发现.
philis
2003-09-30
打赏
举报
回复
完成端口还那个高?不对吧。你是不是没有Sleep一下?
yomi
2003-09-30
打赏
举报
回复
难道不是1?
broadken
2003-09-29
打赏
举报
回复
很正常把。改种io 不是有thereads 池。我想使不是管理该池的threads
yomi
2003-09-29
打赏
举报
回复
你是说哪里用到了?我没有TIMER。
everandforever
2003-09-29
打赏
举报
回复
肯定是你的程序哪里用到啦.
比如 SETTIMER 会创建一个
功能强大的IOCP Socket Servre模块例程源码
完成
端口
通讯服务器(IOCP Socket Server)设计 (六)功能强大的IOCP Socket Servre模块例程源码 Copyright © 2009 代码客(卢益贵)版权所有 QQ:48092788 源码博客:http://blog.csdn.net/guestcode 一、声明 版权声明: 1、通讯模块代码版权归作者所有; 2、未经许可不得全部或部分用于任何项目开发; 3、未经许可不得部分修改后再利用源码。 免责声明: 1、 由于设计缺陷或其它Bug造成的后果,作者不承担责任; 2、未经许可的使用作者不提供任何技术支持服务。 权利和义务: 1、任何获得源码并发现Bug的个人或单位均有义务向作者反映; 2、作者保留追究侵权者法律责任的权利。 二、开发背景 部分代码由前项目分离而来,尚未有应用考验,但对于初学者学习和进阶有很大帮助。性能上尚未有定论,但应该不会令你失望。 三、功能说明 1、可以关闭Socket的Buffer; 2、可以关闭MTU(不等待MTU满才发送); 3、可以多IP或多
端口
监听; 4、可以重用socket(主动关闭除外); 5、可以0缓冲接收(Socket的Buffe = 0时,避免过多的锁定内存页); 6、可以0缓冲连接(客户端仅连接,不一定立即发数据); 7、可以条件编译: a、是否使用内核Singly-linked lists; b、是否使用处理
线程
(工作
线程
和处理
线程
分开); c、是否使用内核锁来同步链表。 8、可以实现集群服务器模式的通讯(有客户端socket); 9、可以单独设置每个连接的Data项来实现连接和Usernfo的关联; 10、每个
线程
有OnBegin和OnEnd,用于设置
线程
独立的对象(数据库会话对象); 11、可以提供详细的运行情况,便于了解IOCP下的机制,以及进行调试分析; 12、可以发起巨量连接和数据(需要硬件配置来支持)。
强大的TcpServer压力测试工具源码(附突破连接限制的方法和工具)
原版本升级,更稳定功能更强 一、 使用G-TcpClient模块 二、 可以设定间隔时间发起大规模长、短连接 三、 可以发起密集数据包,包括即时和定时发送 四、 数据发送工作由一个独立
线程
担当,连接发起工作可设置多个独立的
线程
担当。 五、 可以多种模式组合连接或发送数据。
CCNA_CCNP 思科网络认证 PAT NAT
端口
或地址转换 与端
Re:CCNA_CCNP 思科网络认证 PAT NAT
端口
或地址转换 与
端口
映射 ====================== # 本章课程大纲 公网地址和私网地址 NAT应用场景 ...
强大的TcpServer压力测试工具源码(附突破连接限制的方法和工具)(再次补丁版)
原版本升级,更稳定功能更强 感谢网友对Beta的意见反馈 一、 使用G-TcpClient模块 二、 可以设定间隔时间发起大规模长、短连接 三、 可以发起密集数据包,包括即时和定时发送 四、 数据发送工作由一个独立
线程
担当,连接发起工作可设置多个独立的
线程
担当。 五、 可以多种模式组合连接或发送数据。
C#
端口
扫描器程序(单
线程
和多
线程
)
文章目录一、单
线程
与多
线程
的区别二、
端口
扫描程序设计1. 创建项目2. 界面设计3. 单
线程
代码4. 多
线程
代码三、
端口
扫描程序运行效果1. 单
线程
2. 多
线程
四、参考 一、单
线程
与多
线程
的区别 单
线程
: 每个正在运行的程序(即进程),至少包括一个
线程
,这个
线程
叫主
线程
主
线程
在程序启动时被创建,用于执行main函数 只有一个主
线程
的程序,称作单
线程
程序 主
线程
负责执行程序的所有代码(UI展现以及刷新,网络请求,本地存储等等)。这些代码只能顺序执行,无法并发执行 多
线程
: 拥有多个
线程
的程序,称作多
线程
程
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章