mik*_*eyP 4 java multithreading
我有一个按钮"addCashier",它正在创建一个名为"Cashier"的线程,现在这个线程只是每4秒生成一次订单,在线程的run()方法中有一个while(true)循环.一切都很好,但现在我想添加一个按钮来模拟收银员注销.我在我的while循环onDuty和一个公共函数logOff()中添加了一个布尔变量,它将onTuty bool设置为false以使我退出运行的while循环.我现在的问题是来自我的gui类如何在特定线程上调用函数?每个收银员线程都是在运行时生成的,所以我不知道他们的名字.
我希望我有道理.提前致谢.
Thread t = CashierThread(); //keep the reference to thread somewhere...
Run Code Online (Sandbox Code Playgroud)
现在使用内置中断标志而不是布尔属性:
public void run() {
while(!Thread.currentThread().isInterrupted()) {
//...
}
}
Run Code Online (Sandbox Code Playgroud)
当您想通过单击按钮来转动线程时,只需调用:
t.interrupt();
Run Code Online (Sandbox Code Playgroud)
当然,您需要t从客户端代码访问变量.