草庐IT

sleep_durations

全部标签

Java:LockSupport.parkNanos 与 Thread.sleep(...)

在某些情况下,我们大多数人都会这样写:try{Thread.sleep(2000);}catch(InterruptedExceptione){;//donothing}是否正确或错误,仅在某些测试工具中可接受,不是我的观点。我的观点是,同样的代码可以写得更简洁,如下:LockSupport.parkNanos(2000*1000000);有什么理由让我偏爱一种方法而不是另一种方法。 最佳答案 可读性:Thread.sleep有一个非常直观的含义。您将如何描述(向其他开发人员)您对LockSupport.parkNanos的使用?如

Java:LockSupport.parkNanos 与 Thread.sleep(...)

在某些情况下,我们大多数人都会这样写:try{Thread.sleep(2000);}catch(InterruptedExceptione){;//donothing}是否正确或错误,仅在某些测试工具中可接受,不是我的观点。我的观点是,同样的代码可以写得更简洁,如下:LockSupport.parkNanos(2000*1000000);有什么理由让我偏爱一种方法而不是另一种方法。 最佳答案 可读性:Thread.sleep有一个非常直观的含义。您将如何描述(向其他开发人员)您对LockSupport.parkNanos的使用?如

button.setText()和thread.sleep()

noob的问题。在下面的代码中,我更新Android中的按钮的文本。然后,我想等待两秒钟,然后再次更新文本。如果我评论第二个B.setText(“发送数据”),则睡眠后的一个-然后将B.setText(“Success”)写入按钮。如果我不评论说我永远不会在按钮上看到“成功”的文本,只有“发送数据”。就像我拥有第二个B.setText(“发送数据”)时,这就像thread.sleep()被跳过。Google建议在SetText(“Success”)之后添加计时器,以便SetText()代码在睡眠前有时间执行。没有帮助。finalButtonb=(Button)findViewById(R.id

java - 为什么 Duration 类没有 'toSeconds()' 方法?

我在看DurationJava8中的类,并注意到它没有:longtoSeconds();但它有所有其他的toXXXXX()来获取天数、小时数、分钟数、毫秒数、纳秒数。我确实看到了一个返回此持续时间对象内的秒数的getSeconds()方法。还有一个get(TemporalUnitunit)方法来获取作为请求时间单位的持续时间。但是为什么不保留toSeconds()方法以保持一致性呢? 最佳答案 让我们看看docs是什么说:Thisclassmodelsaquantityoramountoftimeintermsofsecondsan

java - 为什么 Duration 类没有 'toSeconds()' 方法?

我在看DurationJava8中的类,并注意到它没有:longtoSeconds();但它有所有其他的toXXXXX()来获取天数、小时数、分钟数、毫秒数、纳秒数。我确实看到了一个返回此持续时间对象内的秒数的getSeconds()方法。还有一个get(TemporalUnitunit)方法来获取作为请求时间单位的持续时间。但是为什么不保留toSeconds()方法以保持一致性呢? 最佳答案 让我们看看docs是什么说:Thisclassmodelsaquantityoramountoftimeintermsofsecondsan

java - TimerTask vs Thread.sleep vs Handler postDelayed - 每N毫秒调用一次函数最准确?

每N毫秒调用一次函数最准确的方法是什么?带有Thread.sleep的线程定时器任务带有postDelayed的处理程序我修改了thisexample使用Thread.sleep并且不是很准确。我正在开发一个音乐应用程序,它将以给定的BPM播放声音。我知道创建一个完全准确的节拍器是不可能的,我也不需要-只是想找到最好的方法来做到这一点。谢谢 最佳答案 使用定时器有一些缺点它只创建一个线程来执行任务,如果一个任务运行时间太长,其他任务会受到影响。它不处理任务和线程抛出的异常只是终止,这会影响其他计划任务,它们从不运行Scheduled

java - TimerTask vs Thread.sleep vs Handler postDelayed - 每N毫秒调用一次函数最准确?

每N毫秒调用一次函数最准确的方法是什么?带有Thread.sleep的线程定时器任务带有postDelayed的处理程序我修改了thisexample使用Thread.sleep并且不是很准确。我正在开发一个音乐应用程序,它将以给定的BPM播放声音。我知道创建一个完全准确的节拍器是不可能的,我也不需要-只是想找到最好的方法来做到这一点。谢谢 最佳答案 使用定时器有一些缺点它只创建一个线程来执行任务,如果一个任务运行时间太长,其他任务会受到影响。它不处理任务和线程抛出的异常只是终止,这会影响其他计划任务,它们从不运行Scheduled

java - lambda 中的无限 while 循环内的 Thread.sleep 不需要 'catch (InterruptedException)' - 为什么不呢?

我的问题是关于InterruptedException,它是从Thread.sleep方法抛出的。在使用ExecutorService时,我注意到一些我不理解的奇怪行为;这就是我的意思:ExecutorServiceexecutor=Executors.newSingleThreadExecutor();executor.submit(()->{while(true){//DOSOMETHINGThread.sleep(5000);}});使用此代码,编译器不会给我任何错误或消息,告诉我应该从Thread.sleep捕获InterruptedException。但是当我试图改变循环条件

java - lambda 中的无限 while 循环内的 Thread.sleep 不需要 'catch (InterruptedException)' - 为什么不呢?

我的问题是关于InterruptedException,它是从Thread.sleep方法抛出的。在使用ExecutorService时,我注意到一些我不理解的奇怪行为;这就是我的意思:ExecutorServiceexecutor=Executors.newSingleThreadExecutor();executor.submit(()->{while(true){//DOSOMETHINGThread.sleep(5000);}});使用此代码,编译器不会给我任何错误或消息,告诉我应该从Thread.sleep捕获InterruptedException。但是当我试图改变循环条件

java - Thread.sleep(0) 和 Thread.yield() 语句是否等效?

这两个语句是等价的吗?Thread.sleep(0);Thread.yield(); 最佳答案 没有。最明显的区别是sleep()抛出(检查的)InterruptedException。在实践中,效果可能几乎相同,但它完全取决于实现。我敢打赌,对于sleep(),连续执行一百万次会花费更多更长的时间,因为系统计时器粒度可能经常导致它实际sleep不可忽略的数量时间。 关于java-Thread.sleep(0)和Thread.yield()语句是否等效?,我们在StackOverflow