日期:2014-05-19  浏览次数:20642 次

请教个线程的问题,请高手解答,在线求解
我写了一个类,实现了Callable接口,但我想把这个类设置为守护线程,如何做到,请高手解答,来者有分

------解决方案--------------------
探讨
来者有分

------解决方案--------------------
setDaemon本身是Thread的方法,Callable并不提供。而且Callable的定义本身就是一个可以返回结果的Thread.如果可以设为守护,那么有可能永远拿不到结果就退出程序了,这和设计目的不符的。所以如果要设为守护就要使用Thread.
------解决方案--------------------
探讨
setDaemon本身是Thread的方法,Callable并不提供。而且Callable的定义本身就是一个可以返回结果的Thread.如果可以设为守护,那么有可能永远拿不到结果就退出程序了,这和设计目的不符的。所以如果要设为守护就要使用Thread.

------解决方案--------------------
你用的是FutureTask(new Callable(){})吧。FutureTask继承RunnableFuture,而RunnableFuture extends Runnable,Future。因此可以Thread a = new Thread(new FutureTask(new Callable(){}));这样a.setDaemon()就行了。