C 如何在一个do while循环中同时运行三个do while循环?
我有一个程序,通过使用C 如何在一个do while循环中同时运行三个do while循环?,c,C,我有一个程序,通过使用do while条件循环在x维改变位移x[I],使系统的能量最小化。我想把它扩展到一个程序,它通过改变x[I],y[I],z[I],来最小化能量,我想,在这种情况下,在一个大的do-while循环中需要三个同时进行的do-while循环,我怎样才能做到这一点 一维问题的代码如下所示: int main(void) { double eta,energyold; energyold=1.0; unsigned i,j; init(); do{ f
do while
条件循环在x维改变位移x[I]
,使系统的能量最小化。我想把它扩展到一个程序,它通过改变x[I]
,y[I]
,z[I]
,来最小化能量,我想,在这种情况下,在一个大的do-while
循环中需要三个同时进行的do-while
循环,我怎样才能做到这一点
一维问题的代码如下所示:
int main(void)
{
double eta,energyold;
energyold=1.0;
unsigned i,j;
init();
do{
function();
functiond(); //JACOBIAN
dgesv(fnd,b,N,dx);
newpsn();
energyT();
eta=fabs(energy-energyold)/energy;
energyold=energy;
//printf("%lf %lf %lf\n",eta,energy,norm);
}while(norm>1e-12);
for(i=0;i<N;i++)
{
printf("The Equillibrium position of ion %d is: %lf\n",i+1,x[i]);
}
return 0;
}
int main(无效)
{
双eta,energyold;
energyold=1.0;
无符号i,j;
init();
做{
函数();
functiond();//雅可比
dgesv(fnd,b,N,dx);
newpsn();
energyT();
eta=工厂(能源)/能源;
能量D=能量;
//printf(“%lf%lf%lf\n”,预计到达时间、能量、标准);
}而(常模>1e-12);
对于(i=0;i您可以尝试使用多线程。多线程不会使do while
循环并行运行,而是并发运行
如果您在Linux上工作,您可以使用pthread
库,该库提供用于生成新线程、分配任务调度方法、与互斥体相关的函数等的函数
一些有用的链接:
manpthread
(在Linux上,如果安装了pthread库)
您可以尝试使用多线程。多线程不会使您的while
循环并行运行,而是并发运行
如果您在Linux上工作,您可以使用pthread
库,该库提供用于生成新线程、分配任务调度方法、与互斥体相关的函数等的函数
一些有用的链接:
manpthread
(在Linux上,如果安装了pthread库)
您可以尝试使用多线程。多线程不会使您的while
循环并行运行,而是并发运行
如果您在Linux上工作,您可以使用pthread
库,该库提供用于生成新线程、分配任务调度方法、与互斥体相关的函数等的函数
一些有用的链接:
manpthread
(在Linux上,如果安装了pthread库)
您可以尝试使用多线程。多线程不会使您的while
循环并行运行,而是并发运行
如果您在Linux上工作,您可以使用pthread
库,该库提供用于生成新线程、分配任务调度方法、与互斥体相关的函数等的函数
一些有用的链接:
manpthread
(在Linux上,如果安装了pthread库)
有很多关于使用线程的建议,但我不认为您真的需要这样做
这听起来更像是一个纯粹的计算问题,在多核CPU上使用线程可能会减少总的执行时间,但这不是表示计算的必要条件
你不能只使用三个嵌套循环(如果你需要检查x/y/z值的所有组合),或者一次只使用一个吗?线程编程可能相当棘手,所以它确实“值得”如果某个特定的问题不需要,就避免使用线程。关于使用线程有很多建议,但我不认为您真的需要这样做
这听起来更像是一个纯粹的计算问题,在多核CPU上使用线程可能会减少总的执行时间,但这不是表示计算的必要条件
你不能只使用三个嵌套循环(如果你需要检查x/y/z值的所有组合),或者一次只使用一个吗?线程编程可能相当棘手,所以它确实“值得”如果某个特定的问题不需要,就避免使用线程。关于使用线程有很多建议,但我不认为您真的需要这样做
这听起来更像是一个纯粹的计算问题,在多核CPU上使用线程可能会减少总的执行时间,但这不是表示计算的必要条件
你不能只使用三个嵌套循环(如果你需要检查x/y/z值的所有组合),或者一次只使用一个吗?线程编程可能相当棘手,所以它确实“值得”如果某个特定的问题不需要,就避免使用线程。关于使用线程有很多建议,但我不认为您真的需要这样做
这听起来更像是一个纯粹的计算问题,在多核CPU上使用线程可能会减少总的执行时间,但这不是表示计算的必要条件
你不能只使用三个嵌套循环(如果你需要检查x/y/z值的所有组合),或者一次只使用一个吗?线程编程可能相当棘手,所以它确实“值得”如果某个特定问题不需要,请避免使用它。您可能想了解一下吗?当前版本的C无法做到这一点,您需要从您的操作系统进行扩展,或者您可以尝试OpenMP。此外,请在此处发布时正确缩进代码,并使用一些编译时不会出现警告的内容:main
有返回int
的类型。您可能想了解一下吗?当前版本的C无法做到这一点,您需要从您的操作系统中进行扩展,或者您可以尝试OpenMP。另外,请在此处发布时正确缩进您的代码,并拥有一些编译时不会出现警告的内容:main
的返回类型为int
。您可能需要o了解?当前版本的C无法做到这一点,您需要从操作系统中进行扩展,或者您可以尝试OpenMP。另外,请缩进您的代码