使用Java 6:
我有一个方法,使用线程在后台运行任务.此任务访问文件,因此该方法不应该有多个线程在运行.
我试图弄清楚是否有一种方法可以在我的方法开头搜索活动的线程.我想知道是否有一个活动的线程已经在运行我的任务,以便我可以正确处理这种情况.
如果没有先前Thread的实际实例,这是否可行?我想避免全局保存线程的实例.
您可能需要更强大的功能,例如使用ReentrantLock来阻止对这些资源的并发访问.
仅供参考:您可以获取当前线程组及其子组中的所有活动线程(对于独立程序,这通常可以为您提供所有线程)java.lang.Thread.enumerate(Thread[])
.但这不是解决问题的方法 - 正如Brian所说,使用锁.