各位大虾,我运到这样一个问题:
作一个游戏的服务器,开辟了四个线程,分别处理套接字,规则,发送,接受信息,
在开启按钮单击事件,开启这四个线程,用全局变量来控制。while(全局变量=TRUE)
{
}
但这样一开cpu的消耗就达到100%,请大家帮忙解决一下子,最好附带简单的思路代码。
谢谢!

解决方案 »

  1.   

    while(全局变量=TRUE)
    {
     sleep(10);
    }
      

  2.   

    shenyi0106(紫色清风[if(1>0)while(1);]) ( ) 信誉:100  2007-09-07 16:59:38  得分: 0  
     
     
       while(全局变量=TRUE)
    {
     sleep(10);
    }
    ================================================================
    sleep(10)的作用是什么呢?
      

  3.   

    是线程放弃时间片
    不用sleep也行,可以用带阻塞性质的接收函数,或Event,或其他信号量,互斥等等
      

  4.   

    sleep 释放CPU资源,
    Sleep(1) 都可以
      

  5.   

    是线程放弃时间片
    不用sleep也行,可以用带阻塞性质的接收函数,或Event,或其他信号量,互斥等等
    ========================================================================
    能不能解释一下,Event怎么用呢?也有人建议我这么用(WaitForSingleObject(),CreateEvent()),但是我不明白这个机制。
      

  6.   

    比如说
    HANDLE hEvent=CreateEvent(.....);//参数查MSDN,我记不住了
    char buf[8*1024];线程一
    {
      receive(buf,....);//接收客户端数据
      //通知处理线程,可以处理数据了
      SetEvent(hEvent);
    }线程二
    {
      //等待数据接收完毕,线程一不调用SetEvent,这个线程将在此等待,此过程不会占用CPU
      WaitForSingleObject(hEvent);
      //对buf进行处理
    }
      

  7.   

    各位大虾,我运到这样一个问题:
    作一个游戏的服务器,开辟了四个线程,分别处理套接字,规则,发送,接受信息,
    在开启按钮单击事件,开启这四个线程,用全局变量来控制。while(全局变量=TRUE)
    {
    }///////////////////////////////////////////////////////////////////////////
    你写过服务吗?
    懂thread,synch objects,APC,吗?
    我看你这样编码,好怕。
      

  8.   

    你写过服务吗?
    懂thread,synch objects,APC,吗?
    我看你这样编码,好怕。///////////////////////////////////////////////////////////////////////////
    没有啊,只是初学者呢,还请指教,呵呵
      

  9.   

    what_a_big():
    大虾,借个地方,呵呵,可以给我发一个IE 程序设计的电子书吗?迫切想买到,网上买,我偏远地区,大概需要10天左右,来不解。
    恳请大虾赐电子书。
    叩首
    再拜。
    [email protected]
      

  10.   

    不用Sleep(10)的话,你的机器有多快,占用资源就越严重,也就是说不延时的话,马上进行下一次判断