java 程序关闭 线程没关闭_Java如何在程序关闭时停止线程

我得到一些异常,我需要知道程序何时关闭,因为我需要关闭套接字.

我有默认的公共静态main方法,我不断重复一个动作和一个Thread类.

private static Thread thread;

public static boolean isRunning = true;

public static void main(String[] args){

thread = new Thread(new ThreadListenServer());

thread.start();

Timer timer = new Timer();

TimerTask task = new TimerTask() {

@Override

public void run(){

// some action

}

}

timer.scheduleAtFixedRate(task, 0, 10000);

isRunning = false;

}

以及在后台运行的线程类:

public class ThreadListenServer implements Runnable{

private DatagramSocket socket;

public ThreadListenServer() throws SocketException{

socket = new DatagramSocket(6655);

}

@Override

public void run() {

while(MainProgram.isRunning){

// some action

}

socket.close();

}

}

我不知道为什么,但是它正在变得虚假,但它不应该.如果主程序关闭,我该如何关闭套接字? (这是因为即使程序关闭,线程仍然在后台运行).

我正在考虑在主类中创建套接字然后我将套接字对象作为参数传递给ThreadClass,如果程序关闭,我也应该关闭套接字.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值