我有一个正在监听端口的TCP/IP线程(主线程)。当TCP/IP请求到来时,我会产生一个线程来处理该请求。如果工作线程是受CPU限制的(想象一个从1到1000000的循环,什么也不做),我不能接收另一个tcp/ip request.The,所以不会给侦听线程一个切片时间。
我该如何解决这个问题?这是一个实现问题吗?当tcp/ip数据包进入tcp/ip堆栈时,SO是否必须为侦听线程提供切片时间?
谢谢!
发布于 2011-04-11 22:18:31
在工作线程中使用WinAPI函数SwitchToThread()或Sleep(0),以便它将其时间片让给系统中的其他线程/进程。或者在Delphi中,使用TThread.Yield。
https://stackoverflow.com/questions/5575198
复制相似问题