如何在ThreadFactory中创建线程期间访问Runnable?

时间:2012-12-20 14:28:32

标签: java threadpool

我使用自定义ThreadPoolExecutor创建了ThreadFactory。当我通过我的execute()调用Runnable方法时,会使用我的自定义Thread创建新的ThreadFactory。问题是我无法找到访问Runnable内的信息的方法。

例如,我有一个实现Job的类Runnable。在Job内,我有一个属性A,我希望在我的自定义newThread()的{​​{1}}方法中访问该属性。问题是我无法将ThreadFactory作为参数传递给Runnable,因为它不是Job实例,它是Job类的实例,而这个class是ThreadPoolExecutor.Worker

1 个答案:

答案 0 :(得分:5)

您要么滥用或误解线程池的作用。创建线程和提交/运行任务的过程完全分离。线程池决定何时创建新线程,它可能与提交的任何新任务无关。

最后请记住,一个线程最有可能在多个Runnable中重复使用。