【发布时间】:2018-07-04 01:15:51
【问题描述】:
我想找到一种在执行期间识别 Runnable 实例的方法。基本上我正在创建一个临时缓存,线程可以通过 ThreadLocal 访问它,但是将它绑定到线程是不够的,因为我的应用程序正在使用线程池,因此同一个线程将被一遍又一遍地重用。由于传递给线程的 Runnable 不会被重用,我想找到一种方法来获取 Runnable,以便我可以在执行期间识别相同的可运行对象。它将用作 Map 的键,因此即使只是从 toString() 的返回就足够了。
我没有创建线程池,线程是从多个池中创建的,所以如果可能的话,我宁愿不尝试增加 Thread / Runnable 创建过程。
我似乎找不到从 Thread.currentThread() 获取任何有用信息的方法,但如果可能的话,最好使用它。
【问题讨论】:
-
你不能使用
ThreadLocal并在任务完成时清除它吗?
标签: java multithreading runnable