gpt4 book ai didi

java - 停止特定的 Java 线程

转载 作者:搜寻专家 更新时间:2023-11-01 01:23:22 24 4
gpt4 key购买 nike

我有一个按钮“addCashier”,它正在创建一个名为“Cashier”的线程,现在这个线程只是每 4 秒生成一次订单,线程的 run() 方法中有一个 while(true) 循环。那里一切都很好,但现在我想添加一个按钮来模拟收银员注销。我向我的 while 循环 onDuty 添加了一个 boolean 变量,并添加了一个公共(public)函数 logOff() ,它将此 onDuty boolean 值设置为 false 以使我退出运行的 while 循环。我现在的问题是我的 gui 类如何在特定线程上调用函数?每个收银员线程都是在运行时生成的,所以我不知道它们的名字。

希望我说的有道理。提前致谢。

最佳答案

Thread t = CashierThread();  //keep the reference to thread somewhere...

现在使用内置中断标志代替 boolean 属性:

public void run() {
while(!Thread.currentThread().isInterrupted()) {
//...
}
}

当你想通过点击按钮关闭线程时,只需调用:

t.interrupt();

当然,您需要能够从客户端代码访问 t 变量。

关于java - 停止特定的 Java 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7786305/

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