multithreading独立的任务

multithreading独立的任务,第1张

概述multithreading独立的任务

我有N个任务,它们是独立的(即写入不同的内存地址),但不需要完全相同的时间完成(例如2到10秒)。 我有P线程。

我可以将我的N个任务分成P个线程,并启动我的线程。 最后,最后还会有一个线程完成最后的几个任务,这不是最优的。

我还可以启动P线程,每个线程有1个任务,WaitForMultipleObjects,并重新启动P线程等(这是我目前所做的,因为创build线程的开销比任务小)。 但是,这也不能解决问题,在某一点上仍然会有P-1线程在等待最后一个线程。

有没有办法启动线程,一旦线程完成任务,继续下一个可用的任务,直到所有的任务完成?

编写Unix和windows的应用程序

如何检测用户何时按下关机button?

在参数typedef更改时重builddynamic库

在C中编写一个可移植的命令行包装器

当我发送大量kill()命令时,我的服务器不处理所有的信号

谢谢 !

OS X UDP发送错误:55没有可用的缓冲区空间

Code :: Blocks中的OpenCV:应用程序无法正确启动(0xc00000be)

如何在windows上的内核模式下获得进程使用的cpu时钟周期?

物品是否被杀死了?

将批处理shell脚本输出读入C#.Net程序

是的,这就是所谓的线程池。 这是一个非常普遍的做法。

http://en.wikipedia.org/wiki/Thread_pool_pattern

基本上,你创建一个任务队列(函数指针与他们的参数),并推动任务那里。 您有N个线程正在运行,执行以下循环(原理图代码):

while (bRunning) { task = m_pQueue.pop(); if (task) { executeTask(task); } else { //you can sleep a bit here if you want } }

有更多的优雅的方式来实现它(避免睡觉等),但这是它的要点。

总结

以上是内存溢出为你收集整理的multithreading独立的任务全部内容,希望文章能够帮你解决multithreading独立的任务所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存