我有一个HashMap删除正在运行的线程,我想从它删除特定正在运行的线程,我想线程继续做一些处理,然后将被销毁,任何人都知道会发生什么时正在运行的线程从散列表中删除?从一个HashMap
回答
的人都知道,当正在运行的线程从HashMap中去掉会发生什么?
线程将继续运行,直到它完成其run
方法。换句话说,它会在完成时完成。
参考:Life cycle of a thread in Java
额外:
同样的情况在下面的例子。
new Thread(runnableObject).start();
这个线程会在后台运行,直到runnableObject
终止。
非常感谢所有人。 – stackmalux
不客气。 – Zack
同意,你的线程将继续运行,直到方法的run()结束。
尝试此代码:
//Create the HashMap
HashMap<String, Thread> map = new HashMap<String, Thread>();
//Create a task
Runnable task =() -> {
while (true) {
System.out.println("Tick " + System.currentTimeMillis());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
//Create a thread with the task
Thread t = new Thread(task);
//Add this thread into the map
map.put("KEY", t);
//Start this thread
t.start();
//Add this thread into the map
map.remove("KEY");
我的代码没有任何问题,我的程序工作正常。 – stackmalux
非常感谢您分享您的代码。 – stackmalux
- 1. ListAdapter从一个HashMap
- 2. 获得一个HashMap中从一个HashMap信息
- 3. 如何设置从一个hashmap到另一个hashmap的值?
- 4. 印刷只有一个从一个HashMap
- 5. 添加到一个HashMap一个HashMap
- 6. 从TestNg DataProvider返回一个HashMap问题
- 7. Golang:从一个HashMap W /互斥
- 8. 从hashmap写入一个txt文件
- 9. HashMap中删除本身是一个HashMap
- 10. 阵列的HashMap的一个HashMap的
- 11. 一个HashMap添加到包含HashMap
- 12. 实现一个HashMap
- 13. 组织一个hashmap
- 14. 获得一个HashMap
- 15. ConcurrentModificationException和一个HashMap
- 16. 使用一个HashMap
- 17. 铸造一个HashMap
- 18. 添加一个HashMap作为一个值的HashMap
- 19. 如何将一个hashmap内容复制到另一个hashmap
- 20. Ecore建模生成一个HashMap dto持有一个HashMap
- 21. 从一个键移动值到另一个HashMap中
- 22. 从一个HashMap拷贝到另一个而不使用putAll()
- 23. 如何从一个模糊的hashmap创建一个javax.json.JsonObject?
- 24. 如何从一个演员传递HashMap来另一个
- 25. 删除一个给定值的所有项目从一个HashMap
- 26. 通过一个ArrayList一个HashMap迭代
- 27. 想要存储一个HashMap?
- 28. 递增一个HashMap的Java
- 29. 将一个HashMap放在一个HashMap中,然后填充这两个地图。
- 30. 从HashMap中不能检索值HashMap中的另一个内嵌内
甲参照'Thread'是从* Java中的任何其它参考类型*没有什么不同。 – CKing
所以你的意思是线程不会继续处理,垃圾回收器会摆脱它? – stackmalux
是的。如果'Thread'没有被其他地方引用,'Thread'完成执行它的'run'方法。 – CKing