0

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

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

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

4

1 回答 1

1

好吧,甚至不尝试stop()suspend()。它们已被弃用,并且有理由这样做。理想情况下,您甚至不应该尝试wait,或者notifyjava.util.concurrent包中有这么多优秀的库可用时。

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

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

于 2013-09-09T16:03:01.877 回答