我有一个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. 获得一个HashMap中从一个HashMap信息
- 2. 添加到一个HashMap一个HashMap
- 3. 从hashmap写入一个txt文件
- 4. 从TestNg DataProvider返回一个HashMap问题
- 5. HashMap中删除本身是一个HashMap
- 6. ConcurrentModificationException和一个HashMap
- 7. 实现一个HashMap
- 8. 组织一个hashmap
- 9. Ecore建模生成一个HashMap dto持有一个HashMap
- 10. 添加一个HashMap作为一个值的HashMap
- 11. 删除一个给定值的所有项目从一个HashMap
- 12. 如何从一个演员传递HashMap来另一个
- 13. 通过一个ArrayList一个HashMap迭代
- 14. 从一个HashMap复制一个搜索的对象和密钥到另一个
- 15. 解析XML的一行到一个HashMap
- 16. 使用HashMap作为另一个HashMap的关键字
- 17. 返回从一个HashMap的所有按键withou循环
- 18. 不能从随机选择的HashMap中删除一个值
- 19. 从意图发送自定义HashMap类到另一个意图
- 20. 如何从一个HashMap直接设置对象字段的Android
- 21. 绑定一个HashMap实例在吉斯
- 22. HashMap的 - 让第一个关键值
- 23. 遍历其排序键是一个HashMap
- 24. 维护列表大小一个HashMap
- 25. 可能存储一个HashMap在ServletContext中?
- 26. 如何列表转换为一个HashMap
- 27. HashMap只给我最后一个数据
- 28. 打印一个ArrayList <HashMap>
- 29. 创建一个通用的HashMap阵列
- 30. 如何放置一个HashMap的HASHSET INSIDE?
甲参照'Thread'是从* Java中的任何其它参考类型*没有什么不同。 – CKing
所以你的意思是线程不会继续处理,垃圾回收器会摆脱它? – stackmalux
是的。如果'Thread'没有被其他地方引用,'Thread'完成执行它的'run'方法。 – CKing