暂停执行外部方法较长时间的初始化线程

时间:2013-09-09 15:57:37

标签: java android

由于Thread stop()和suspend()方法的弃用性质,我已经习惯于使用经过良好测试的等待/通知方法实现标准的协作暂停方法。不幸的是,我当前的项目包括一个初始化线程,它通过对外部方法的单次调用复制递归目录结构,该方法在完成之前不会返回,并且不实现任何类型的等待/通知协作。

我很想知道其他程序员在这种情况下想要做什么,除了重新实现外部方法,因为我很想使用Thread.suspend()方法并希望包含在其中的文件操作在暂停期间,外部方法不会保留任何关键的东西。

嗯......这是一个棘手的问题。

1 个答案:

答案 0 :(得分:1)

好吧,甚至不尝试stop()suspend()。他们被弃用了,并且有理由这样做。理想情况下,当java.util.concurrent包中有这么多优秀的库时,您甚至不应该尝试waitnotify

在您的情况下,您应该检查您要调用的外部方法的文档,以了解该库的关闭策略。如果没有提到那么你可能会尝试打断。如果外部方法调用进行一些阻塞调用,则中​​断肯定会起作用。除此之外,我没有别的办法。

使用suspend只会导致不稳定而不是帮助任何事情。不使用它将需要更多的计算能力,但至少是稳定的。