java多线程,运行后机子越来越慢,如何解决

songhuan1229 2007-08-15 09:03:20
今天用多线程的知识写了一个JAVA小程序 ,可是编译几次后,机子就慢得不行了,后来几乎到了无法忍受的程序,把eclipse关掉以后一切恢复。
请问各位大侠,有没有什么好的办法可解决这个问题呢?
...全文
950 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingNE 2007-08-16
  • 打赏
  • 举报
回复
配一台配置更高的新的电脑
最好是双核的!!!!!!!!!!!!!!
songhuan1229 2007-08-16
  • 打赏
  • 举报
回复
算了,明天结吧,可能会有更好的答案。也希望大家能看到最好的答案。
songhuan1229 2007-08-16
  • 打赏
  • 举报
回复
哎,现在正在研究,怎么样给分,以前没有发过贴,呵呵。
songhuan1229 2007-08-16
  • 打赏
  • 举报
回复
嘿嘿,谢谢各位的支持。
我把sleep(10)搞成sleep(1000)后效果好多了。
JAVA_JAVA_JAVA_JAVA兄弟提醒得对,但是我还知道关这个的,嘿嘿,不过也多谢你的提醒。
Yamiedie 2007-08-16
  • 打赏
  • 举报
回复
配一台配置更高的新的电脑
jianhuaitianxia 2007-08-16
  • 打赏
  • 举报
回复
大学有没有用还是要看你是怎么学的
songhuan1229 2007-08-16
  • 打赏
  • 举报
回复
对了,学完JAVA的多线程以后,觉得以前学的《操作系统》这门真的很有用,幸好认真学了。
以后不会说大学教育没用了。
songhuan1229 2007-08-16
  • 打赏
  • 举报
回复
嘿嘿,第一次发贴,多谢各位的支持,可惜的是我只能给出20分,各位见谅了。
mingyuan0824 2007-08-16
  • 打赏
  • 举报
回复
怎么光有start()没有stop()那,这样程序是一直在运行的,添加中断命令,或停止,就不会慢了,我刚做个多线成的程序
mingyuan0824 2007-08-16
  • 打赏
  • 举报
回复
Thread.interrupt();
eddie404956 2007-08-15
  • 打赏
  • 举报
回复
你的机子可能不够好,还有,一般停止Thread的方法是不好的,最好用flag来控制
oracs 2007-08-15
  • 打赏
  • 举报
回复
10ms的运行频率太高了,更何况是4个thread一起运行~
Davis129 2007-08-15
  • 打赏
  • 举报
回复
没有

try{
interrupt();
}catch{
return;
}


if(!interrupted()){
....
}

你的4个线程好象是死循环嘛
JAVA_JAVA_JAVA 2007-08-15
  • 打赏
  • 举报
回复
得到你想要的结果!上面打错! 方型按扭! E 为 eclipse
raito 2007-08-15
  • 打赏
  • 举报
回复
sleep(10)太少了,sleep(1000)就不会太慢了
JAVA_JAVA_JAVA 2007-08-15
  • 打赏
  • 举报
回复
运行完了 得到你想要的记过 请记得把 运行的窗口中有个停止运行这个按扭 是个红色的防型的!点了那个 E 后台就不运行这个程序了! 这就是你为什么关了 E 后 系统又好使了! 那是因为你没关掉 在E 后台运行的程序!
songhuan1229 2007-08-15
  • 打赏
  • 举报
回复
是不是有可以强制关闭线程的方法呢?
songhuan1229 2007-08-15
  • 打赏
  • 举报
回复
我这个程序是模仿售票的业务来做的,没有数据层,也没有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-- +" 张票");
// }
}
}
}
---------------------------------------------------------------------------
谢谢各位了。
zhao0p 2007-08-15
  • 打赏
  • 举报
回复
如果占用数据库资源打开后就必须有关闭资源
ansili521 2007-08-15
  • 打赏
  • 举报
回复
关注中...
加载更多回复(1)

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧