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)”'已完成..不同的语言/框架使用不同的结构来处理此类场景。如果您可以提供特定的语言,我可能会提供特定的解决方案。不同的语言/框架使用不同的结构来处理此类场景。如果您可以提供特定的语言,我可能会提供特定的解决方案。