java - Java中的线程优先级

标签 java multithreading

我在我的应用程序中遇到问题,有时当两个线程将鼠标移动到屏幕的某些 (X,Y) 坐标时,线程有时会尝试同时执行此操作(到不同的 (X,Y) ),导致持续几秒钟的之字形。

更改我的一个线程的线程优先级以提高是否可以解决此问题,或者我应该添加 AtomicBoolean 来解决此问题吗? (AtomicBoolean 的问题是,我需要 AtomicBoolean 来完成很多很多事情,因为在两个线程中都有许多不同的函数调用鼠标移动)

最佳答案

如果您在多个线程之间使用单个鼠标对象,则它们应该在应一次性处理的部分上使用同步{} block 。需要该对象的其他线程如果到达类似的同步块(synchronized block),就会等待。

run() {
    synchronize (mouse) {
      mouse.move();
      mouse.click();
      mouse.move();
      etc();
    }
    otherStuff();
}

只要确保您的同步块(synchronized block)不会太大,以免一个线程独占使用鼠标的时间。它的外观取决于您的应用程序。

关于java - Java中的线程优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24336694/

相关文章:

c - volatile 和缓存行为

java - 有没有办法即时更改或重新设置传入网站的外观?

Java OpenGL 4.4 : Store/Push, 弹出当前程序管道

objective-c - cocoa 等待执行完成

java - Android:将网页的HTML读入字符串

java - 需要创建ExecutorService的对象

java - MapReduce:减少写入上下文时无限期停止

java - 如何获得正确的编码?

java - 如何使用路径变量参数将请求中的特定对象值发送到 Controller

Java线程启动其他线程,每个线程写入数组