Java 并发中的同步块/方法和调度规则



我正在调查同步块和调度规则。我知道这两种方法都用于保证同步数据。但我不了解它们,它们是如何工作的。同步规则和调度规则的优点和缺点是什么? 我在这里参考了有关调度规则的说明: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;
}    }

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

提前致谢

当线程需要访问相同的数据时,将使用计划和同步。如果一个线程读取数据,改变数据,并且在它可以写回数据之前,另一个线程读取数据,这将是一个主要问题。

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

调度用于解决线程可以访问(计时(共享资源的顺序。

如果一个线程无法访问另一个线程可以访问的资源,则没有理由担心同步,因为它是唯一使用该资源的线程

特定于您的代码片段,它创建了一个互斥锁(它明确指出(,它只允许一个进程访问资源 - 上面的注释称其为二进制信号量,并且出于所有意图和目的,它的工作方式就像一个。但是,java 在其预定义的互斥锁中使用监视器;不是信号量。

最新更新