Java Thread.sleep对等待windows完成文件创建/移动的可运行任务的影响
我有一种情况,即windows文件夹上的文件移动/创建会导致任务使用该路径上的文件继续执行时出现计时问题 因此,我正在使用thread.sleep(30毫秒)休眠运行该任务的deamon线程,直到windows能够正常工作并允许我的任务在没有任何FileNotFoundException的情况下正常运行 初始化类Java Thread.sleep对等待windows完成文件创建/移动的可运行任务的影响,java,multithreading,threadpool,daemon,thread-sleep,Java,Multithreading,Threadpool,Daemon,Thread Sleep,我有一种情况,即windows文件夹上的文件移动/创建会导致任务使用该路径上的文件继续执行时出现计时问题 因此,我正在使用thread.sleep(30毫秒)休眠运行该任务的deamon线程,直到windows能够正常工作并允许我的任务在没有任何FileNotFoundException的情况下正常运行 初始化类 Thread t = new Thread (processTask); t.setdaemon(true) t.start(); 任务类 class ProcessTask
Thread t = new Thread (processTask);
t.setdaemon(true)
t.start();
任务类
class ProcessTask() extends Runnable
{
Files.move(source, destination, copyoption);
Thread.sleep(30ms); //to wait for windows to complete move
new FileInputstream(sourceFile);
}
将线程。睡眠(30毫秒)确保只睡眠我当前的执事线程?是否有一种方法可以确认sleep在何处运行线程。sleep()会影响当前线程。它不会使其他线程休眠
但是,在程序逻辑中使用Thread.sleep()
从来都不是一个好主意。尤其是在等待其他动作完成时。这些应该通过通知机制来处理,而不是等待随机数量,并希望一切都能正常工作。Thread.sleep()
会影响当前线程。它不会使其他线程休眠
但是,在程序逻辑中使用
Thread.sleep()
从来都不是一个好主意。尤其是在等待其他动作完成时。这些应该通过通知机制来处理,而不是等待随机数量,并希望一切都能正常工作。您的代码相互矛盾。如果您从源
移动到目标
,很明显您不能在之后打开源代码,但是,源文件
是一个操作中根本不涉及的变量。此外,FileInputstream
使用的库代码与NIO不同。假设destination
是一个路径
,表示您实际想要打开的内容,我会尝试文件。newInputStream(destination)
。您的代码相互矛盾。如果您从源
移动到目标
,很明显您不能在之后打开源代码,但是,源文件
是一个操作中根本不涉及的变量。此外,FileInputstream
使用的库代码与NIO不同。假设destination
是一个路径
代表您实际想要打开的内容,我会尝试文件。newInputStream(destination)
。