首页编程java编程java里什么是死循环,java 如何停止一个死循环

java里什么是死循环,java 如何停止一个死循环

编程之家2023-10-12101次浏览

大家好,今天来为大家解答java里什么是死循环这个问题的一些问题点,包括java 如何停止一个死循环也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

java里什么是死循环,java 如何停止一个死循环

Java中一个线程执行死循环有什么后果

有两个线程在并发运行,一个线程执行的代码中含有一个死循环如:while(true)....当该线程在执行while(true)中代码时,另一个线程会有执行。一.示例代码:二.两个线程类的实现如下:三.线程A执行methodA(),methodA()中有一个死循环:四.测试类:

由于线程A和线程B获得的对象锁不是同一把锁,从结果中可以看出,线程B是可以执行完成的。而线程A由于进入了while死循环,故线程A一直执行运行下去了(整个程序未结束),但线程B会结束。

也就是说,尽管线程A一直在while中执行,需要占用CPU。但是,线程的调度是由JVM或者说是操作系统来负责的,并不是说线程A一直在while循环,然后线程B就占用不到CPU了。对于线程A而言,相当于一个“计算密集型”作业了。如果while循环是不断地测试某个条件是否成立,那么这种方式就很浪费CPU,可参考一个具体的实例:JAVA多线程之线程间的通信方式中的“线程间的通信方式”第二点while轮询。

java里什么是死循环,java 如何停止一个死循环

如果把Service.java修改成如下:

总结:若线程A先获得对象锁时,由于while循环,线程A一直在while空循环中。而线程B也因为无法获得锁而执行不了methodB()。

可以看出,如果在一个线程在synchronized方法中无法退出,无法将锁释放,另一个线程就只能无限等待了。

java里什么是死循环,java 如何停止一个死循环

java 如何停止一个死循环

明显你的frame.show()就不应该放在actionPerformed里面,窗口只要显示一次就可以了。另外,我怀疑你是否设置,关闭窗口的动作是退出程序。你用的Frame,建议用JFrame,对Frame进行拓展的了,Frame的很多方法过时了。

看看下面这个简化的例子:

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Random;

import javax.swing.JFrame;

import javax.swing.Timer;

public class test{

static int n=0;

static Random rd= new Random();

public static void main(String[] args){

final JFrame frm= new JFrame();

frm.setSize(300,400);

//设置关闭窗口时动作为退出

frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//设置标题通过变量 n测试是否成功刷新

frm.setTitle("标题-"+n++);

//显示窗口

frm.setVisible(true);

Timer t= new Timer(1000, new ActionListener(){

@Override

public void actionPerformed(ActionEvent e){

frm.setTitle("标题-"+n++);

//窗口大小也改变随机

frm.setSize(rd.nextInt(500),rd.nextInt(600));

}

});

t.start();//开始刷新

}

}

java程序如何判断有没有进入死循环

一般来说需要处理超时问题,你的系统应该是有和硬件做交互,这个时候有两种做法,一种是硬件本身做超时设置,比如一个线程处理接收到的指令,另一个线程处理计时,时间到后没有收到信息就是超时,超时后执行复位操作

另一种是外部系统做处理,方式一样,但是有漏洞,一般来说没有第一个指令发出后及时你外部做了超时中断,也有可能硬件线程无法终止导致卡机,除非杀死进程,但是程序的复杂性就增加了

总之:你想通过JAVA来判断一个程序是否卡死,最好的方法是这个程序能够自己判断是否卡死,否则JAVA程序还是会有点问题。如果说如何实现,就是用线程的方式实现

java我的迭代器程序为什么会出现死循环

当然会出现死循环

原因:

你没有使用next()方法,就是返回下一个元素,所以你的程序中的游标(迭代器)始终停留在了aaa的前面,而没有跳到下一个位置,因为ite.hasNext())只是判断是否有下一个元素,而 String str=(String) ite.next()才是返回下一个元素并将游标(迭代器)移动到下一个元素的位置

文章到此结束,如果本次分享的java里什么是死循环和java 如何停止一个死循环的问题解决了您的问题,那么我们由衷的感到高兴!

java main是什么意思?JAVA中main方法是什么意思java 什么是持久性,java中什么是持久层