发信人: wenbobo(灌了拂衣去)
整理人: wenbobo(2002-12-24 09:21:01), 站内信件
|
并不是线程越多响应越快。基本上,代码结构合理的话,线程数目和CPU个数相等就可以了,如果有支持超线程的CPU,则应相应增加线程。
对于一般的应用,考虑到需要及时的响应用户界面,可以把交互和调度等工作放在主线程里面,此线程占用CPU开销极小,可以忽略。另开的任务线程数目则最好符合上面的原则。
调度程序在所有工作线程都繁忙时候再创建新线程,达到限定数目后不再创建新线程,转而把任务加入待处理队列。
任务线程设计成一个循环,除非主线程通知,否则永不中止。每一次循环首先检查任务队列,如果发现有待处理任务,则处理,并标记此任务为“正在处理”。处理完成后从队列中删除此任务。
以上就是线程池的模型。
【 在 mqb163 的大作中提到:】
:我在这找多线程/线程池技术资料/讨论,几乎没有,也太少了。斑竹们也没有相关的传贴,精华区也没几篇,是不是不在此版?请给个相关的讨论区吧。在CSDN上有几篇,可我注册不了。。。
:
:我想写个Client/Server程序(用Socket/windows下),Server端有不同的(n个)File...,不同的client端可能要访问server端上不同的file(也就是说某一个client是固定访问某一个file).不同的client有可能是访问同一个file。访问包括read/write-->>这应该是比较普通的也典型的Client/Server应用吧?
:
:我的想法是:在server端建多个thread,采用线程池管理,也就是说多线程不用释放,循环使用。当client访问结束后,server端的线程放入线程池等待另一client的请求。windows下,不用MFC.线程数可固定。
:
:......
---- 掬水月在手
弄花香满身
|
|