Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 将循环拆分为更小的部分_Algorithm_Loops_For Loop_Mathematical Optimization - Fatal编程技术网

Algorithm 将循环拆分为更小的部分

Algorithm 将循环拆分为更小的部分,algorithm,loops,for-loop,mathematical-optimization,Algorithm,Loops,For Loop,Mathematical Optimization,我在一个循环中有一个函数,它占用了大量资源,并且通常不会完成,除非服务器处于低负载状态 如何将其拆分为更小的循环?减小该值时,函数将正常执行 例如,这是可行的: x = 10 for i = 0; i <= x; i++ { myfunction(i) } x=10 对于i=0;i您的函数是异步的,并且一次有太多实例吗?是打开资源还是不关闭资源?也许您可以在每10次迭代后延迟一次 x = 1000 for i = 0; i <= x; i++ { myfunction(

我在一个循环中有一个函数,它占用了大量资源,并且通常不会完成,除非服务器处于低负载状态

如何将其拆分为更小的循环?减小该值时,函数将正常执行

例如,这是可行的:

x = 10
for i = 0; i <= x; i++ 
{ 
 myfunction(i)
}
x=10

对于i=0;i您的函数是异步的,并且一次有太多实例吗?是打开资源还是不关闭资源?也许您可以在每10次迭代后延迟一次

x = 1000
for i = 0; i <= x; i++ 
{ 
 myfunction(i);
 if(i%10==0)
 {
  Thread.Sleep(1000);
 }
}
x=1000

对于i=0;i您的函数是异步的,并且一次有太多实例吗?是打开资源还是不关闭资源?也许您可以在每10次迭代后延迟一次

x = 1000
for i = 0; i <= x; i++ 
{ 
 myfunction(i);
 if(i%10==0)
 {
  Thread.Sleep(1000);
 }
}
x=1000

对于i=0;如果您的任务是异步的,那么可以使用辅助线程池技术

您可以使用10个线程创建线程池。 首先你给他们分配10个任务。
无论何时任务完成,您都可以将剩余的任务分配给给定的线程

如果任务是异步的,则可以使用辅助线程池技术

您可以使用10个线程创建线程池。 首先你给他们分配10个任务。
无论何时任务完成,您都可以将剩余的任务分配给给定的线程

是的,它是异步的。只有一个在i上有效的实例。延迟可能不起作用,因为资源仍然打开,但我可以尝试一下。谢谢。如果你不在C#中,你可以放置某种标志,告诉你函数什么时候完成,然后重复执行一个线程。睡眠(1000),直到你的标志表明“myfunction(i)”已经完成。是的,它是异步的。只有一个在i上有效的实例。延迟可能不起作用,因为资源仍然打开,但我可以尝试一下。谢谢。如果你不在C#,你可以放置某种标志,告诉你函数什么时候完成,然后重复执行一个线程。睡眠(1000),直到你的标志指示“myfunction(i)”'已完成..不同的语言/框架使用不同的结构来处理此类场景。如果您可以提供特定的语言,我可能会提供特定的解决方案。不同的语言/框架使用不同的结构来处理此类场景。如果您可以提供特定的语言,我可能会提供特定的解决方案。