有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java并发中eclipse同步块/方法和调度规则

我正在研究同步块和调度规则。我知道这两种方法都用于保证同步数据。但我不理解它们,它们是如何工作的。同步和调度规则的优点和缺点是什么? 我在这里引用了有关调度规则的说明:http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fruntime_jobs_rules.htm 在本文件中,它代表了以下规则:

We can fix this example by creating a simple scheduling rule that acts as a mutex (also known as a binary semaphore):

   class Mutex implements ISchedulingRule {
      public boolean isConflicting(ISchedulingRule rule) {
         return rule == this;
      }
      public boolean contains(ISchedulingRule rule) {
         return rule == this;
      }    }

然后,将规则设置为对象或方法以控制作业。 在这段代码中,我看不到规则以及如何检查规则。 何时使用调度规则或同步

提前感谢


共 (1) 个答案

  1. # 1 楼答案

    当线程需要访问相同的数据时,使用调度和同步。如果一个线程读取数据并对其进行变异,而在将数据写回之前,另一个线程读取数据,这将是一个主要问题

    需要仔细注意此横截面,以确保一次只有一个进程可以访问共享资源。同步一次只允许一个进程利用资源(以一种更高级的方式,同步可以允许预先确定的多次访问次数(如果愿意的话);即信号量)

    调度用于确定线程可以访问(定时)共享资源的顺序

    如果一个线程不能访问另一个线程可能访问的资源,那么就没有理由担心同步问题,因为它是唯一使用该资源的线程

    特定于您的代码片段,它创建了一个互斥体(它清楚地说明了这一点),该互斥体只允许一个进程访问资源——上面的注释将其称为二进制信号量,并且出于所有目的,它的工作方式与一个进程类似。但是,java在预定义的互斥锁中使用监视器;不是信号灯