java多线程中的死循环

Python017

java多线程中的死循环,第1张

是这样的,ss.accept()方法是阻塞的,也就是说ss所在的线程运行到accept()函数就会一直等待,直到ss接收到了一个Socket请求。正因为accept()是阻塞的,所以一般会把这个函数放在一个单独的线程,这样就不会影响主线程(例如程序界面)的运行,Socket编程几乎是肯定和多线程编程一起用的。accept()放进了单独的线程了自然就不会影响后面代码的执行,因为这时accept()的时间片和后续代码的时间片会由JVM调配,而不是按照代码编排的先后顺序了。

另外你对死循环的理解有偏差,所谓死循环是指循环条件永远为真而导致循环一直不结束,而由于循环内部的方法阻塞导致的循环不结束不属于死循环,这两个有本质的差别。通常Socket.accept()是该放进一个死循环的,也就是你的while(true)

最简答的

int i = 0//记录循环的次数

while(true){

//为了让你看到循环的打印信息

System.out.println(++i+"次死循环")

}

java 停止一个死循环,可以使用break关键字,跳出循环,如下代码:

package com.qiu.lin.he

public class Ceshi {

public static void main(String[] args) {

for (int i = 2 i > 0 i++) {

if (i == 80) {

System.out.println("死循环退出了")

break

}

}

}

}

运行结果如下: