java多线程,运行后机子越来越慢,如何解决 今天用多线程的知识写了一个JAVA小程序 ,可是编译几次后,机子就慢得不行了,后来几乎到了无法忍受的程序,把eclipse关掉以后一切恢复。请问各位大侠,有没有什么好的办法可解决这个问题呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我这个程序是模仿售票的业务来做的,没有数据层,也没有UI层,很简单的程序。下面驱动类:package csust;public class ThreadDriver { public ThreadDriver(){ } public static void main(String[] args){ MyThread my = new MyThread(); new Thread(my).start(); new Thread(my).start(); new Thread(my).start(); new Thread(my).start(); }}下面线程使用的类:package csust;public class MyThread implements Runnable { private int count = 100; String str = ""; public void run(){ while(count > 0){// synchronized(str){// try {// Thread.sleep(10);// } catch (InterruptedException e) {// e.printStackTrace();// } System.out.println("现在由窗口: " + Thread.currentThread().getName() + "售出第 " +count-- +" 张票");// } } }}---------------------------------------------------------------------------谢谢各位了。 运行完了 得到你想要的记过 请记得把 运行的窗口中有个停止运行这个按扭 是个红色的防型的!点了那个 E 后台就不运行这个程序了! 这就是你为什么关了 E 后 系统又好使了! 那是因为你没关掉 在E 后台运行的程序! sleep(10)太少了,sleep(1000)就不会太慢了 得到你想要的结果!上面打错! 方型按扭! E 为 eclipse 没有try{ interrupt();}catch{ return;}if(!interrupted()){....}你的4个线程好象是死循环嘛 10ms的运行频率太高了,更何况是4个thread一起运行~ 你的机子可能不够好,还有,一般停止Thread的方法是不好的,最好用flag来控制 嘿嘿,谢谢各位的支持。我把sleep(10)搞成sleep(1000)后效果好多了。JAVA_JAVA_JAVA_JAVA兄弟提醒得对,但是我还知道关这个的,嘿嘿,不过也多谢你的提醒。 怎么光有start()没有stop()那,这样程序是一直在运行的,添加中断命令,或停止,就不会慢了,我刚做个多线成的程序 对了,学完JAVA的多线程以后,觉得以前学的《操作系统》这门真的很有用,幸好认真学了。以后不会说大学教育没用了。 输出结果是什么? 一个棘手sql问题 java的多态 vs c++的多态 大家讨论一下为什么许多类都要重写equals()方法呢? 菜鸟的字节数组问题啊 求助 郁闷,这个月中旬要去面试,说要会JAVA,以前没学过,刚下了本电子版JAVA编程思想狂肯ING 初学Java,请高手帮忙解决一个问题,多谢 菜鸟!求助 String类基本问题 会的近来!! 时间格式化问题。。。。急 问一个简单的关于启动显示窗口的问题
下面驱动类:
package csust;public class ThreadDriver {
public ThreadDriver(){
}
public static void main(String[] args){
MyThread my = new MyThread();
new Thread(my).start();
new Thread(my).start();
new Thread(my).start();
new Thread(my).start();
}
}
下面线程使用的类:
package csust;public class MyThread implements Runnable {
private int count = 100;
String str = "";
public void run(){
while(count > 0){
// synchronized(str){
// try {
// Thread.sleep(10);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
System.out.println("现在由窗口: " + Thread.currentThread().getName() + "售出第 " +count-- +" 张票");
// }
}
}
}
---------------------------------------------------------------------------
谢谢各位了。
interrupt();
}catch{
return;
}
if(!interrupted()){
....
}你的4个线程好象是死循环嘛
我把sleep(10)搞成sleep(1000)后效果好多了。
JAVA_JAVA_JAVA_JAVA兄弟提醒得对,但是我还知道关这个的,嘿嘿,不过也多谢你的提醒。
以后不会说大学教育没用了。