问题标签 [mutual-exclusion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
554 浏览

php - PHP互斥文件/ MySQL使用perl从文件中读取和执行语句

所以我想知道PHP如何/如果PHP在文件读写方面有某种互斥。

以下是我打算如何使用它:

我正在使用的网站使用需要离开服务器的支付服务,这使得处理表单提交变得困难,因此在从支付服务返回之前,表单不会被提交到数据库中。信息可以通过支付服务传递并在另一端反刍。但是,可以传递的信息最少。

我对解决方案的想法:

在将注册传递给支付服务之前,处理并在文件中写入 sql 语句,每组语句引用由某个令牌分隔的注册。

返回时,根据您通过支付服务发送的信息查找条目,执行语句并从文件中删除注册块。

改写问题:

- 所以问题是 - 在这种情况下,我是否需要对文件进行互斥,如果需要,我将如何实现?这可以从多种语言中锁定吗?(支付服务需要返回一个 cgi / perl 脚本——尽管我可以包含一个实际处理的 php 脚本)

- 我将如何运行和执行 SQL 语句(最好在 perl 中)?

- 我的解决方案是否看起来不错?

谢谢,

特拉维斯

0 投票
1 回答
751 浏览

ruby-on-rails-3 - 几个客户端请求之间的rails API中的互斥锁

我在我的 Rails API 中遇到了互斥问题。我的数据库中有一些 Event 对象,其中包含将参加该活动的人数。

考虑我的 Event 方法,它将一个人添加到事件中:

现在,假设客户端 A 和 B 想要参与事件 E。Rails 将收到 2 个请求并将并行调用 add_person 方法。最后,事件 E 中的人数可能不是加 2 而是加 1。

这就是我希望能够做到的:

我只想add_person在同一个对象上排队该方法。

有没有办法做到这一点 ?

0 投票
0 回答
190 浏览

mutex - Peterson-2 互算法

Peterson 的 2 进程算法的无争用复杂度为 4(在入口代码中执行 3 两次对共享寄存器内存的访问,在退出代码中执行一次)。如何修改 Peterson 的 2 进程算法,使其无争用复杂度为 3?谢谢。

0 投票
1 回答
438 浏览

sql - 在实体框架中使用 SQL dB 列作为并发操作的锁

我们有一个长期运行的用户操作,由工作进程池处理。数据输入和输出来自 Azure SQL。

主 Azure SQL 表结构列近似为

beingProcessed是布尔值并且lastTimeProcessed是日期时间。每个工人角色的逻辑如下所示,并且有多个工人处理(每个工人都有自己的实体框架层),本质上beingProcessed是用于互斥目的的锁

问题:如何beingProcessed根据上述负载处理“锁”本身的并发问题?我认为 read-modify-writebeingProcessed需求的操作必须是原子的,但我对其他策略持开放态度。也对其他代码改进开放。

[更新]:我想知道TransactionScope这里是否需要... http://msdn.microsoft.com/en-US/library/system.transactions.transactionscope(v=vs.110).aspx

代码:

0 投票
2 回答
5015 浏览

sql-server - 如何创建互斥表列

我有一个表 Transactions ,其中我为一笔交易保存两条记录,一条用于借记和其他贷记。

creditAmount(Money)所以我在 table和中有两列debitAmount(Money)

我想要一个表级约束,即每行中的任一列都不为空。即,如果第 3creditAmount行为空,则debitAmount必须保存一些值,反之亦然。

连续插入记录时如何确保相同?

0 投票
1 回答
591 浏览

java - 同步不进

注意:我不是在寻找解决方法;我敢肯定,如果有必要,我可以找到其他方法。我只是觉得我错过了一些基本的或古怪的东西,我想知道我错过了什么。或者,如果有一种方法可以使用调试器来获取更多信息,那也很好。谢谢!

我在使用同步时遇到问题。我收到了僵局,但这似乎完全不可能。我在每个同步调用之前、每个调用内部以及退出之前都放置了打印语句,这样我就可以看到谁拥有哪些同步对象。我发现即使当前没有人持有该对象的锁,它也不会进入我的同步调用之一。是否有一些我遗漏的怪癖或非法嵌套操作?这是我正在做的事情的要点。

哦,是的,最奇怪的是,删除两个“busyFlagObject”同步使它工作正常......

线程 1:

线程 2:

0 投票
2 回答
882 浏览

process - 在进程同步中,什么是 Monitor?

互联网上有很多关于 Semaphore、Mutex 等的信息。但据我搜索,Monitors 上没有明确的信息。

我知道 Mutex 有助于进程之间的互斥。二进制信号量也有类似的功能。那么引入一个叫做 Monitor 的新概念有什么用呢?

0 投票
1 回答
61 浏览

c# - 我可以使用资源本身作为监视器来锁定资源吗?

我有一个多线程运行上下文。我希望一个资源(比如说对象 r)是互斥的。我可以将资源本身用作其监控对象吗?

例如

0 投票
3 回答
67 浏览

joomla - joomla中的互斥

我使用以下方法为 joomla 创建了一个扩展:

我刚刚介绍过,如果两个用户登录到该站点,将在数据库中一起执行两条记录,然后此语句将在两种情况下返回相同的值。在 php 中,您可以通过事务解决此问题。

在 joomla 我该如何解决这个问题?

0 投票
1 回答
1657 浏览

concurrency - 互斥(彼得森算法)

我在看 Peterson 的算法(2 个进程的互斥) 我的问题是,如果还没有进程进入临界区,而 P0 想第一次进入临界区,那么 P1 的标志会是假的,那么 P0 怎么办?进入它的关键部分?P0 进入其临界区的条件取决于我们的标志 P1 是否为真。

代码: