C语言死循环如何退出?

C语言死循环如何退出?,第1张

对于死循环程序,只能强制退出。

1、控制台程序中的死循环程序,一般按CTRL+C直接中断程序即可。比如下面的死循环控制台程返余竖序。

int main()

{

    while (1)  

    return 0

}

按CTRL+C即可中断程序。在控制台下会显示为^C。

2、图形界面中的死循环程序,可以使用进程管理工具来强制结束,比如windows上的任务管理器。当然控制台死循环程序,也可以使用此种方法结束。以win7为例,在任务栏上右键,在d毁厅出菜单中选择漏大“任务管理器”。

在任务管理器中找到要结束的进程,右键选择“结束进程”即可。

1、首先打开电脑和matlab软件,新建一个m文件,并在m文件里面输入一个死循环的代码,如下所示,for循环里面的inf是表示一个敏败无穷大数的简友意思。

2、然后点击matlab上面的绿色run按钮,可以看到Command Window里面一直处于运行busy状态,也就是死循环的状态。

3、此时退出该死循环的第一个方法:就是把光标定位到Command Window窗口,看到在fx右边一直闪烁的状态。

4、然后同时按下键盘上的ctrl+C组合键,就可以看到for循环停止运行,并跳出一个Warning的蓝色提示语句。

5、还可以在任务管理器桥咐颤的“进程”下面的应用找到“MATLAB(R2015a)”,在其上面点击右键,在d出来的菜单中选择“结束任务(E)”。

6、还可以直接点击matlab主面板右上角的打叉符号,在d出来的对话框中Stop Now and Exit这个按钮即可跳出死循环。

1,线程正常执行完毕,正常结束。颂者

也就是让run方法执行完毕,该线程就会正常结束。

2,监视某些条件,结束线程的不间断运行。

然而,常常有些线程是伺服线程。它们需要长时间的运行,只有在外蠢圆部某些条件满足的情况下,才能关闭这些线程。

通常,它们执行在一个while(true)的死循环中。

如:

@Override

publicvoidrun(){

while(true){

someWork()

if(finished){

break

}

try{

Thread.sleep(10000)

}catch(InterruptedExceptione){

/*TODO自动生成catch块

*

*/

e.printStackTrace()

}

}

}

我们可以在while死循环内,每次循环时,察看外部条件,看看是否需要关闭当前线程。如果是,就break,跳出死循环,或者是抛出异常,跳出死循环,结束线程。

3,捕获InterruptedException运行时异常,中断当前线程。

有些执行伺服任务的线程,在while(true)这样的死循环内部,是一个阻塞中的方法。此时,就不能采用第二种方法了。因为,当该方法没有返回时,该线程一直处于阻塞当中,根本无法执行其他语句。

此时,就需要调用该线程的interrupt方法,产生一个InterruptedException运行时异常,是阻塞中的那个方法抛出这个异常,从而让我们有机会结束这个带樱塌线程的执行。

如:

@Override

publicvoidrun(){

while(true){

try{

//getSendMessages是BlockingQueue类。它的take方法将会阻塞!

responseMessage=this.getSendMessages().take()[Page]

}catch(InterruptedExceptione1){

thrownewRuntimeException()

//或者break

}

someWork()

}

一个外部的Thread对象指向这个线程。需要结束这个线程时,只需要调用thread对象的interrupt()方法,就会在

responseMessage=this.getSendMessages().take()

这条语句中产生一个InterruptedException异常,从而结束该线程的阻塞状态,通过抛出异常,或者break跳出死循环,结束这个线程。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12384869.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存