草庐IT

needs_thread_safety

全部标签

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 Event-Dispatching Thread 解释

我最近开始学习和探索Java中GUI编程的基础知识。已经编程了一段时间,我只做过后端工作或工作,因此我最接近用户界面的是命令控制台(我知道很尴尬)。我正在使用Swing,据我所知,通过扩展,我也在使用AWT。我的问题是基于这段代码:java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newframe.setVisible(true);}});我已经研究了一段时间,因为我想完全理解这段奇怪的代码,并且多次遇到“事件调度线程”这个术语。如果我错了,请纠正我,但据我所知;它与使用多个线程以及JavaSwing如何解释这些

Java Event-Dispatching Thread 解释

我最近开始学习和探索Java中GUI编程的基础知识。已经编程了一段时间,我只做过后端工作或工作,因此我最接近用户界面的是命令控制台(我知道很尴尬)。我正在使用Swing,据我所知,通过扩展,我也在使用AWT。我的问题是基于这段代码:java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newframe.setVisible(true);}});我已经研究了一段时间,因为我想完全理解这段奇怪的代码,并且多次遇到“事件调度线程”这个术语。如果我错了,请纠正我,但据我所知;它与使用多个线程以及JavaSwing如何解释这些

java - RabbitMQ 示例 : Multiple Threads, channel 和队列

我刚看完RabbitMQ'sJavaAPIdocs,并发现它非常翔实和直截了当。如何设置简单的示例Channel用于发布/消费非常容易理解和理解。但这是一个非常简单/基本的例子,它给我留下了一个重要的问题:如何设置1+Channels向多个队列发布/消费?假设我有一个RabbitMQ服务器,上面有3个队列:logging,security_events和customer_orders.所以我们要么需要一个Channel能够发布/使用所有3个队列,或者更有可能拥有3个独立的Channels,每个专用于一个队列。最重要的是,RabbitMQ的最佳实践要求我们设置1Channel每个消费者线

java - RabbitMQ 示例 : Multiple Threads, channel 和队列

我刚看完RabbitMQ'sJavaAPIdocs,并发现它非常翔实和直截了当。如何设置简单的示例Channel用于发布/消费非常容易理解和理解。但这是一个非常简单/基本的例子,它给我留下了一个重要的问题:如何设置1+Channels向多个队列发布/消费?假设我有一个RabbitMQ服务器,上面有3个队列:logging,security_events和customer_orders.所以我们要么需要一个Channel能够发布/使用所有3个队列,或者更有可能拥有3个独立的Channels,每个专用于一个队列。最重要的是,RabbitMQ的最佳实践要求我们设置1Channel每个消费者线

java - Eclipse 错误 : This project needs to migrate WTP metadata

我们在Eclipse3.2中启动了一个Web项目,我们已经升级到Eclipse3.4,但现在项目出现错误:“此项目需要迁移WTP元数据”我们尝试右键单击并执行“快速修复”,这实际上是为了迁移WTP元数据。不幸的是,什么也没发生,错误仍然存​​在。我们可以从问题中删除该错误,并且一切正常,但是,每次我们从源代码管理重新导入项目时,错误都会重新出现。关于如何永久消除此错误或如何实际迁移WTP元数据的任何想法?更新:每个人,请对适合你的答案投票,而不是添加你自己的答案来引用前人的答案。 最佳答案 上述解决方案工作正常,但它一次又一次地爬起

java - Eclipse 错误 : This project needs to migrate WTP metadata

我们在Eclipse3.2中启动了一个Web项目,我们已经升级到Eclipse3.4,但现在项目出现错误:“此项目需要迁移WTP元数据”我们尝试右键单击并执行“快速修复”,这实际上是为了迁移WTP元数据。不幸的是,什么也没发生,错误仍然存​​在。我们可以从问题中删除该错误,并且一切正常,但是,每次我们从源代码管理重新导入项目时,错误都会重新出现。关于如何永久消除此错误或如何实际迁移WTP元数据的任何想法?更新:每个人,请对适合你的答案投票,而不是添加你自己的答案来引用前人的答案。 最佳答案 上述解决方案工作正常,但它一次又一次地爬起

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。但是当我试图改变循环条件