草庐IT

sleep_durations

全部标签

java - Thread.sleep() 内部是如何工作的

假设我有一个线程T,它持有一个资源R。如果我在当前线程(即T)上调用Thread.sleep(),它会在转到之前释放资源R(让其他线程使用它)吗?睡不睡?或者它会持有该资源,当它醒来时它会再次使用资源R并在完成工作后释放它? 最佳答案 首先Thread.sleep()是Blocking库方法。线程可能会阻塞或暂停,原因有多种:WAITINGI/O完成、等待获取锁、等待从Thread.sleep唤醒或等待另一个线程中的计算结果。当线程阻塞时,它通常被挂起并置于阻塞线程状态之一。因此,当您调用sleep()方法时,Thread离开CPU

java - 从多个线程调用时 Thread.sleep() 如何工作

sleep()是Thread类的静态方法。从多个线程调用时它是如何工作的。以及它如何确定当前的执行线程。?或者可能是一个更通用的问题是如何从不同的线程调用静态方法?不会有任何并发​​问题吗? 最佳答案 howdoesitfigureoutthecurrentthreadofexecution?没必要。它只是调用操作系统,操作系统总是让调用它的线程hibernate。 关于java-从多个线程调用时Thread.sleep()如何工作,我们在StackOverflow上找到一个类似的问题:

Java - 主方法中的 Thread.sleep

我正在审查Java代码,它本质上是一个定期移动/读取/解析一些文件并将数据输出到数据库的重复过程。重复部分(大致)如下完成:publicclassCollectorMain{publicstaticbooleansignalRecieved=false;publicstaticvoidmain(String[]args){Runtime.getRuntime().addShutdownHook(newThread(){publicvoidrun(){shutdown();}});while(!signalRecieved){Collector.execute();try{Thread.

java - 如何对在执行程序服务中运行的代码片段进行单元测试,而不是等待 Thread.sleep(time)

如何对在执行程序服务中运行的代码进行单元测试?在我的情况下,publicvoidtest(){RunnableR=newRunnable(){@Overridepublicvoidrun(){executeTask1();executeTask2();}};ExecutorServiceexecutorService=Executors.newSingleThreadExecutor();executorService.submit(R);}当我进行单元测试时,我想对方法执行进行一些验证。我在执行程序服务中执行它,因为它进行一些网络操作。在我的单元测试中,我必须等到此方法执行完毕。有没

java - 如果 Thread.sleep 是静态的,单个线程如何知道它已进入休眠状态?

我对Thread.sleep()方法有点困惑。如果Thread.sleep()是静态方法,两个线程如何知道哪个线程进入休眠状态。例如,在下面的代码中,我有两个三个Threadsmain、t和t1。我总是调用Thread.sleep()。不是t.sleep()。这是否意味着Thread.sleep()使当前线程进入休眠状态?这意味着Thread实例通过调用静态方法自行进入休眠状态。如果t1想让t进入休眠状态怎么办?这不可能是正确的?publicclassThreadInterrupt{publicstaticvoidmain(String[]args)throwsInterruptedE

java - Duration 不支持与类文档相反的 DAYS

在java.timeJava8及更高版本的框架,Duration类说:Thisclassmodelsaquantityoramountoftimeintermsofsecondsandnanoseconds.Itcanbeaccessedusingotherduration-basedunits,suchasminutesandhours.Inaddition,theDAYSunitcanbeusedandistreatedasexactlyequalto24hours,thusignoringdaylightsavingseffects.然而,当我调用get方法并通过ChronoUn

java - 如何使用 PowerMock 模拟 Thread.sleep()?

如何使用PowerMock模拟Thread.sleep()?示例接口(interface)和类:publicinterfaceMachine{voidsleep(longmillis);}publicclassMachineImplimplementsMachine{privatestaticfinalLoggerlogger=Logger.getLogger(MachineImpl.class);@Overridepublicvoidsleep(longmillis){try{if(millis>0){logger.trace(String.format("Trytosleepfor

java - 错误 "java.lang.NoSuchFieldError: WRITE_DURATIONS_AS_TIMESTAMPS"

我正在根据另一个Java项目使用Maven开发JavaWeb服务。我将调用Web服务项目(项目2)和依赖项目(项目1)所以我有一个“项目1”,这个项目使用“com.fasterxml.jackson.datatype.joda.JodaModule”jar。“项目1”具有此依赖项。com.google.guavaguava19.0-rc2commons-langcommons-lang2.6org.slf4jslf4j-api1.7.12joda-timejoda-time2.8.2org.apache.httpcomponentshttpclient4.5.1com.fasterxm

java - 使用 Thread.sleep 进行测试

使用Thread.sleep()加速测试的推荐方法是什么。我正在测试一个具有重试功能的网络库,当连接断开或发生超时错误等时。然而,该库在重试之间使用了Thread.sleep()(因此它不会服务器重新启动时t连接数千次)。该调用显着减慢了单元测试速度,我想知道有哪些选项可以覆盖它。请注意,我愿意实际更改代码,或使用模拟框架来模拟Thread.sleep(),但我想先听听您的意见/建议。 最佳答案 将与时间相关的功能委托(delegate)给单独的组件通常是个好主意。这包括获取当前时间,以及像Thread.sleep()这样的延迟。这

java - 线程 sleep 和线程连接

如果我让一个线程在循环中hibernate,netbeans会提醒我在循环中调用Thread.sleep会导致性能问题。但是,如果我要用join替换sleep,则不会给出此类警告。两个版本都可以编译并且工作正常。我的代码如下(检查“Thread.sleep()vst.join()”的最后几行)。publicclassTest{//Displayamessage,precededbythenameofthecurrentthreadstaticvoidthreadMessage(Stringmessage){StringthreadName=Thread.currentThread().