【发布时间】:2010-01-13 12:45:56
【问题描述】:
我已经创建了在 win32 服务中运行的套接字程序,但我面临的问题是,当我启动该服务时,它会启动并且它正在使用 CPU 移动其全部 50% 的 CPU。我正在使用 AMD 64 位处理器。
如果我编写一个没有套接字的程序,它不会使用 CPU。
我应该怎么做才能解决这个问题。
【问题讨论】:
-
显示问题的 short 示例(可作为控制台运行)会有所帮助。
我已经创建了在 win32 服务中运行的套接字程序,但我面临的问题是,当我启动该服务时,它会启动并且它正在使用 CPU 移动其全部 50% 的 CPU。我正在使用 AMD 64 位处理器。
如果我编写一个没有套接字的程序,它不会使用 CPU。
我应该怎么做才能解决这个问题。
【问题讨论】:
您可能需要查看@987654321@ 之类的内容,以便在等待数据读取时进行阻止。
如果没有更多细节,很难准确说出您的问题是什么,但很可能就是这样。
【讨论】:
是的,一段示例代码会有所帮助,但问题很可能是您处于超时循环中。根据您所在的客户端/服务器连接的哪一侧,这可以通过无限超时调用 accept() 或 select() 来解决。在实践中,最好有一个较长的超时时间,大约一秒,这样进程/线程可以寻找信号并在请求时关闭。
【讨论】: