java - Thread.sleep 对等待 Windows 完成文件创建/移动的可运行任务的影响

标签 java multithreading threadpool daemon thread-sleep

我遇到的情况是,在 Windows 文件夹上移动/创建文件会导致使用该路径上的文件继续执行任务的计时问题

因此,我正在使用 thread.sleep(30ms) hibernate 运行该任务的守护线程,直到 Windows 正常工作并允许我的任务正常运行而不会出现任何 FileNotFoundException。

初始化类

 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);
  }

thread.sleep(30ms) 肯定只 hibernate 我当前的守护线程吗?有没有办法确认 sleep 在哪里起作用

最佳答案

Thread.sleep() 影响当前线程。它不会让其他线程进入休眠状态。

但是,对于程序逻辑来说,使用 Thread.sleep() 从来都不是一个好主意。特别是在等待其他操作完成时。这些应该通过通知机制来处理,而不是等待随机数量并希望一切顺利。

关于java - Thread.sleep 对等待 Windows 完成文件创建/移动的可运行任务的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42070490/

相关文章:

java - 在 Java 中使用一个对象的泛型类型作为另一个对象的类型信息

java - 尝试重新创建 java.util.ConcurrentModificationException

asp.net-mvc - 异步 MVC 操作的工作线程从何而来?

elasticsearch - 线程池/队列大小限制未解决

java - csv 中不显示中文文本

windows - 提取并创建包含 aux/aux.* 的 .jar 存档

java - 如何在不强制转换的情况下在具有相同数据类型参数的另一个泛型类(或接口(interface))中使用泛型类(或接口(interface))

user-interface - 在 Eclipse 插件应用程序中将值从非 UI 线程传递到 UI 线程的最佳实践

java - JAVA中如何知道ConcurrentHashMap上没有运行任何操作或者处于Idle状态?

java - HttpClient内存管理