mtwm.net
当前位置:首页 >> 线程池面试题C >>

线程池面试题C

这个涉及到线程的同步,以及线程之间的通讯.这个有很多种解决方案.1. 使用管道. 线程池里面线程在管道上同步读.然后管理线程可以通过管道给工作线程分发任务. 参考http://msdn.microsoft.com/en-us/library/windows/desktop/aa365780

我的天,真是啥答案都有.例子嘛…… 请参见《Windows程序设计》Charles Petzold著 北京大学出版社,第五版 P1125 如若手头没有书,那……我只说4个字:文件加载.自己领悟吧~~~ PS:这涉及到输入输出中断相关问题,若是不太了解底层,还是别想太深…… ///////////// 另外,3楼朋友,你说的是单核,若是存在多个处理器,它们可以并发处理线程,实现真正的“并行处理”,此时线程的执行并无严格的一致顺序,因此你的解释在多个CPU共存时肯定不成立. 如果只有一个CPU,你的解释……这个跟死循环……怎么说呢,有一定关系但我认为,这更应该属于“线程安全”的讨论范畴,与单线程/多线程的效率关系很牵强.

我在原来在网上找的资源,你可以参考一下.线程池 线程是一种比较昂贵的资源.有些系统为了重用线程.引入了线程池的机制. 线程池的工作原理如下: 首先.系统会启动一定数量的线程.这些线程就构成了一个线程池.当有任务要做的时候.系统就

MSDN有用法示例,不多讲了.线程池的作用主要是缓解线程新建(分配资源)和销毁(垃圾回收)所带来的资源浪费,不用的线程并不销毁而保留在池中,用的时候再拿来用,池有一定的容量只有达到上限才会以

线程池可以设置最大的运行线程个数,

New WaitCallBack(ThreadPoolMethod.AddNumberConsole) 这里指示建立一个新的WaitCallBack委托,目标函数是ThreadPoolMethod.AddNumberConsole ThreadPool.QueueUserWorkItem表明将某个线程排入队列,第一个为线程函数对应的委托,第二个为可选的函数参数. 该函数返回true表示成功执行队列,false表失败 REF: http://msdn.microsoft.com/zh-cn/library/4yd16hza(v=VS.90).aspx

并没有什么太痛苦的地方 构建一个线程池类,一个工作线程函数类 初始化的时候创建多个线程 每个线程检测当前是否存在任务,没有任务挂起10ms 将线程任务函数交给工作线程函数类的对象 将该对象发给线程池类对象 线程池类对象分配给空闲的线程池执行 执行完成后收集结果放入结果队列等待用户提取

理论上是添加进去后立刻就会执行.不需要再有什么触发.具体是看cpu的分配与调度.只要添加进去,线程池中有线程空闲,就会触发.

你说的没错,得有个标记线程是否空闲,如果空闲的话,就调用SuspendThread(idleThread);悬挂当前线程,需要使用的时候再调用ResumeThread(idleThread); 就可以还原了.空闲线程不是结束,是相当于执行空操作.结束是执行完成了..你必

http://stackoverflow.com/questions/15752659/thread-pooling-in-c11c++11的thread直接可以数组各种折腾,自己做线程池也不难.如果一定要找成型的库,github上随便挑:https://github.com/search?utf8=%E2%9C%93&q=c%2B%2B+threadpool

bestwu.net | 369-e.com | zxqs.net | mqpf.net | zxqs.net | 网站首页 | 网站地图
All rights reserved Powered by www.mtwm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com