我正在创建一个程序,并首次使用细节中的线程,并陷入了一种情况。请帮助我。 我有一个处于等待状态的线程。现在在某些情况下,我想要杀死或唤醒线程并从另一个类继续。为此,我保存了线程对象。我不知道如何执行此操作。试图通知线程,但得到exception.Here是我的代码:从睡梦中醒来的线程
类别之一:
Thread t= new Thread(new Runnable() {
@Override
public void run() {
try{
Thread.sleep(VariableClass.THREAD_WAIT_SECONDS);
if(message !=null)
message_status = message.getStatus();
}
catch(InterruptedException e)
{
e.printStackTrace();
}
//do other stuff and save the thread object
VariableClass.threads.remove(message.getUniqueId());
}
});
t.start();
VariableClass.threads.put(pojo.getUniqueId(),t);
类二:
Thread t =VariableClass.threads.get(tempId);
t.notify();
我只是想恢复或杀死线程。
我想你应该使用't.interrupt()' – SpaceTrucker
这可能是一个XY问题的实例(http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)你真正的目标是什么?如果你想从一个线程传递消息到另一个线程,那么你可能应该使用某种类型的队列(例如java.util.concurrent.SynchronousQueue或java.util.concurrent.BlockingQueue)。 –