gpt4 book ai didi

java - 单击按钮后停止线程

转载 作者:行者123 更新时间:2023-11-29 09:32:18 25 4
gpt4 key购买 nike

我创建了一个线程并在点击按钮时调用它:

btnUpload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new ClientThread()).start();
}
});

这是我的主线:

class ClientThread implements Runnable {

@Override
public void run() {

try {
InetAddress serverAddr = InetAddress.getByName(SERVER_IP);

socket = new Socket(serverAddr, SERVERPORT);

} catch (UnknownHostException e1) {
e1.printStackTrace();

} catch (IOException e1) {
e1.printStackTrace();

}

}

}

我需要在单击按钮后停止线程。我将如何做?我试过 boolean 、中断方法但没有用。我怎样才能阻止它?请帮助我。

最佳答案

试试这个测试代码:

public class Test3 {
public static void main(String[] args) throws InterruptedException, IOException {
Thread serverThread = new Thread(new ServerThread());
serverThread.start();

ClientThread client = new ClientThread();
Thread clientThread = new Thread(client);
clientThread.start();
Thread.sleep(5000);
client.closeSocket();
}
}

class ServerThread implements Runnable {
@Override
public void run() {
try {
ServerSocket serverSocket = new ServerSocket(7777);
serverSocket.accept();
} catch (Exception e) {
e.printStackTrace();
}
}

}

class ClientThread implements Runnable {
Socket socket;

public void closeSocket() throws IOException {
socket.close();
}

@Override
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName("127.0.0.1");
socket = new Socket(serverAddr, 7777);
} catch (Exception e) {
e.printStackTrace();
}
}
}

这将成功关闭套接字并退出线程。

关于java - 单击按钮后停止线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22501175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com