[英]Java jframe freezing when running code in thread
我正在制作一个可以破解 SHA1 代码的蛮力程序。 我对使用线程非常陌生,我想通过并行运行来使用它们来加速应用程序。 谁能帮我阻止 jframe 冻结。 线程工作并产生正确的答案,但不允许我再次使用 jframe。
我用于线程的代码:
public class crack1 extends Thread {
char[] pass1 = new char[1];
public boolean crack11() {
// while(!exit){
for (int i = 0; i < length; i++) {
pass1[0] = alpha1[i];
if (compareit(input, pass1) == true) {
System.out.println(String.valueOf("password =" + pass1[0]));
return true;
}
}
return false;
}
private boolean cracker(String input) {
crack1 obj1 = new crack1();
crack2 obj2 = new crack2();
crack3 obj3 = new crack3();
crack4 obj4 = new crack4();
crack5 obj5 = new crack5();
crack6 obj6 = new crack6();
if (obj1.crack11() == true) {
jTextArea1.append("password found");
System.out.println("password found");
}
// obj2.run();
// obj3.run();
// obj4.run();
// obj5.run();
// obj6.run();
System.out.println("done");
}
public static boolean compareit(String input, char[] test) {
System.out.println(String.valueOf(test));
String answer = String.valueOf(test);
String check = sha1(String.valueOf(test));
if (input.equals(check)) {
// jTextArea1.append("password ="+answer);
// System.out.println(String.valueOf("password ="+answer));
return true;
} else {
return false;
}
}
}
//obj2.run();
这不是你使用线程的方式。 直接调用 run() 方法只会导致代码在当前线程上执行。
要让代码在单独的线程上执行,您需要使用:
obj2.start();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.