gpt4 book ai didi

java - 一个java可执行文件可以同时运行多个循环吗

转载 作者:行者123 更新时间:2023-11-30 11:23:46 25 4
gpt4 key购买 nike

我使用 Eclipse KEPLER [我喜欢 Eclipse JUNO 版本]警告:我的英语一点都不好,如果发现无意义的句子请指正或通知我。

我的问题是: 我有一个程序在主循环中有很多循环,我注意到一个严重的故障,这将导致整个程序每 3 秒卡住一次,然后再次唤醒。 [我想发代码,但是里面包含了14个以上的类,所以……也许我不发了]

问题是由循环引起的,它需要很长时间才能完成。如果这些“循环”在“主循环”中,则此“主循环”需要 3 秒才能再次开始[这是 Not Acceptable ]

由于代码量大,我写了一个问题示例,它可能包含可能的解决方案,但我不知道该怎么做:

    public class EX1 {
static public String w=""; // something where program can storage stuff
static public String alp="AaÁáÂâÄäÃãÅåÀàBbCcDdEeÉéÊêËëÈèFfGgHhIiÍíÎîÏïÌìJjKkLlMmNnÑñOoÓóÔôÖöÕõÒòPpQqRrSsTtUuÚúÛûÜüÙùVvWwXxYyÝýÿZz1234567890 ";

public static void StuffThatSupposeToBeAlwaysOn(){ // As I told here is loop that suppose to be running all time
int rand=0; // in this example, this loop works as random text generator
for(int a=0;a<100;a++){
rand=(int)(Math.random()*alp.length()-1);
w=w+(alp.substring(rand,rand+1));
}
}
public static void StuffThatSupposeToBeAlwaysOn2(){ //this suppose to be another same time running loop
/*
* printed String w should always be 16 letters long
* but because program run both loops one by one, it simply can't print it right length (16)
* so it print it as max length of loop (100)
*/
for(int a=0;a<50;a++){
if(w.length()>15){
System.out.println("Randomly generated text: "+w+". length of text is: "+w.length());
w="";
}
}
}

public static void main(String[] args) {// main program

long a=System.currentTimeMillis();
while(a+2000>System.currentTimeMillis()){ //Main loop[automated kill after 2 seconds]

StuffThatSupposeToBeAlwaysOn(); // so if I get both running at same time, problem is solved.
StuffThatSupposeToBeAlwaysOn2();

}System.exit(0);//program gets killed here
}
}

最佳答案

如果它们滞后于您的主循环,这就是多线程的好用处,这样每个方法都可以在单独的线程上运行并在完成后反馈给主线程,而不会减慢主线程上的速度.

关于java - 一个java可执行文件可以同时运行多个循环吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21000931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com