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

Mic*_*che 0 java threadpool

我有一个ThreadPoolExecutor我用自定义创建的ThreadFactory.当我调用execute()传递my 的方法时Runnable,Thread使用我的自定义创建一个new ThreadFactory.问题是我无法找到一种方法来访问里面的信息Runnable.

例如,我有一个Job实现的类Runnable.在里面Job,我有一个属性A,我想在newThread()我的自定义方法中访问ThreadFactory.问题是我不能将Runnable传递的as参数转换为,Job因为它不是一个Job实例,它是ThreadPoolExecutor.Worker类的一个实例,而这个类是private.

Tom*_*icz 5

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

最后要记住,一个线程最有可能在多个Runnables中重用.