mutual-exclusion相关内容

确保只有一个程序实例正在运行

有没有一种 Pythonic 的方式让一个程序只运行一个实例? 我想出的唯一合理的解决方案是尝试在某个端口上将其作为服务器运行,然后第二个程序尝试绑定到同一端口 - 失败.但这并不是一个好主意,也许还有比这更轻巧的东西? (考虑到程序有时会失败,即段错误 - 所以“锁定文件"之类的东西将不起作用) 解决方案 以下代码应该可以完成这项工作,它是跨平台的并且可以在 Python 2 ..
发布时间:2022-01-02 18:51:47 Python

swift中的互斥替代方案

我在多个线程之间有一个共享内存.我想防止这些线程同时访问这块内存.(比如生产者-消费者问题) 问题: 一个线程向队列添加元素,另一个线程读取这些元素并删除它们.他们不应同时访问队列. 这个问题的一个解决方案是使用互斥锁. 正如我发现的,Swift 中没有互斥锁.Swift 中有其他选择吗? 解决方案 正如人们所评论的(包括我),有几种方法可以实现这种锁定.但我认为 ..
发布时间:2022-01-01 11:56:42 移动开发

唯一日期时间范围的 Postgres 约束

我的表有两列: startsAt endsAt 两者都保存日期和时间.我想做以下约束: 如果两列都不为空,则startsAt 和endsAt 之间的范围不得与其他范围(来自其他行)重叠. 解决方案 您可以保留单独的 timestamp 列并仍然使用 排除约束 表达式: CREATE TABLE tbl (tbl_id 串行主键,starts_at 时间戳,ends_a ..

如何使用互斥参数创建 Python 函数?

我有一个 Python 类,它需要接受两个互斥参数之一.如果参数不是排他性的(即:如果两者都给出或都不给出),则应引发错误. class OrgLocation:__init__(self, location_num=None, location_path=None):"""location_num 和 location_path 是互斥的""" 在大多数情况下,最好的选择是创建两个单独的类. ..
发布时间:2021-11-17 05:41:01 Python

argparse 和互斥组,每个组都有自己所需的设置

我有一个程序需要有一个选项来测试服务器 ID 列表或对服务器发出命令.这意味着,如果我发出 --test,则不需要其他任何内容.它对每台服务器运行所有测试并打印结果. 但是,如果我不指定 --test,那么它应该需要一些选项,例如 --id 和 --command>. 但是,我不确定 argparse 是否可以处理互斥组中所需的选项.代码(为简单起见修改)如下.我已经修改了选项,所以如 ..
发布时间:2021-11-17 04:48:05 Python

如何使具有互斥参数的Python函数?

我有一个Python类,它需要接受两个互斥参数之一.如果参数不是互斥的(即,如果两个或两个都不给出),则将引发错误. class OrgLocation:__init __(self,location_num = None,location_path = None):“""location_num和location_path是互斥的"“" 在大多数情况下,最好的选择是制作两个单独的类.但是 ..
发布时间:2021-04-09 19:17:14 Python

文件上的PHP互斥/MySQL使用perl读取和执行文件中的语句

所以我想知道PHP如何/是否在文件读写方面具有某种互斥性. 这是我打算使用它的方式: 我正在使用的网站利用了一项付款服务,该服务需要离开服务器,这使得处理表单提交变得困难,这样,直到从支付服务返回后,表单才被提交到数据库中.信息可以通过支付服务传递,并在另一端重新分配信息.但是,可以传递的信息最少. 我对解决方案的想法 在将注册传递给支付服务之前,请先将sql语句处理并写入 ..
发布时间:2020-07-01 03:30:26 PHP

使用监控器实现证券交易所

我正在尝试使用Hoare的监视器进行证券交易所. 它具有两个功能buy()和sell(),如下所示: buy(procid, ticker, nshares, limit) sell(procid, ticker, nshares, limit) 并应打印有关买方编号,卖方编号,股票编号,股份数量和价格的信息. 公平总是可以满足的. 我的解决方案的伪代码如下,但它并不完整. ..
发布时间:2020-07-01 03:30:24 其他开发

用Java编写互斥锁

我是计算机科学的新手,正在读一本介绍线程和互斥量的书.我曾尝试用Java编写互斥锁,这似乎在大多数情况下都有效,但是每隔一段时间它都不会起作用. 在我的代码中,关键部分将数字1到10加到静态变量j,结果为55(如果j从0开始).如果我在关键部分同时运行三个线程,则会得到j的随机最终值,这很有意义. 但是使用下面的互斥量,大多数时候我得到的最终j值为165(55 * 3),这是我想要的, ..
发布时间:2020-07-01 03:29:21 Java开发

列表中的互斥随机抽样

input = ['beleriand','mordor','hithlum','eol','morgoth','melian','thingol'] 在不重复任何元素的情况下,我无法创建X个大小为Y的列表. 我一直在使用: x = 3 y = 2 import random output = random.sample(input, y) # ['mordor', 'thin ..
发布时间:2020-07-01 03:29:20 Python

快速的互斥量替代方案

我在多个线程之间有一个共享内存.我想防止这些线程同时访问此内存. (例如生产者-消费者问题) 问题: 一个线程将元素添加到队列中,另一个线程读取这些元素并将其删除.他们不应同时访问队列. 解决此问题的一种方法是使用Mutex. 我发现,Swift中没有Mutex. Swift中还有其他选择吗? 解决方案 正如人们评论(包括我在内)那样,有几种方法可以实现这种锁定.但 ..
发布时间:2020-07-01 03:28:17 移动开发

PHP互斥(互斥)

阅读一些有关锁定PHP的文字. 它们主要直接指向 http://php.net/manual/en/function. flock.php . 本页讨论有关在硬盘上打开文件的问题! 真的是这样吗?我的意思是,这使锁定变得非常昂贵-这意味着每次要锁定时,我都必须访问硬盘)= 能再给我一个令人愉快的消息安慰我吗? 编辑: 由于我收到了一些答复,我想问这个问题; 我的脚 ..
发布时间:2020-05-14 02:12:36 PHP

如果保证相互排斥,例如使用信号量,那么程序是否没有死锁?

我分别定义互斥和死锁如下: 如果每时每刻将每个共享资源分配给一个进程,或者每个共享资源都可用,则存在互斥条件. 如果一组进程中的每个进程都在等待只有该组中的另一个进程才可能引起的事件,则该进程将陷入僵局. 说,使用二进制信号量,以确保它们中只有一个可以同时进入其关键区域.由于每个进程在进入关键区域之前都会发生下降,而在离开关键区域之后则会发生上升,因此可以确保相互排斥. 我了解要使死锁 ..
发布时间:2020-05-13 23:43:41 其他开发

静态变量和线程(C)

我知道在C函数中声明一个静态变量意味着该变量在函数调用之间保留其状态.在线程上下文中,这会导致变量在多个线程上保持其状态,还是在每个线程之间具有单独的状态 ? 这是我在努力回答的过去的纸质考试问题: 以下C函数旨在用于为其调用方分配唯一标识符(UID): get_uid() { static int i = 0; return i++; } 说明在多个线程调用get_uid ..
发布时间:2020-05-13 22:47:19 其他开发

条件变量与信号量

何时应使用信号量,何时应使用条件变量(CondVar)? 解决方案 锁用于互斥.当您想要确保一段代码是原子的时,请在其周围加一个锁.从理论上讲,您可以使用二进制信号量来执行此操作,但这是一种特殊情况. 信号量和条件变量建立在锁提供的互斥之上,用于提供对共享资源的同步访问.它们可以用于类似目的. 通常使用条件变量来避免在等待资源可用时的繁忙等待(在检查条件时反复循环).例如,如果 ..

自旋锁如何防止过程中断?

我在此站点上读到一个答案,说自旋锁减少了上下文切换的开销,然后我阅读了与此相关的教科书声明: 自旋锁使繁忙的等待程序不被中断. 我的问题是标题. 由于这本书使用while循环来表示自旋锁的 spin 部分的实现,因此以下是我根据这种考虑尝试说明自己的理由 这听起来像是,如果有一个程序有一个忙于等待的while循环,那么所有其他程序(进程)将不会永远执行,但这不会使多程序环境 ..

在C和php之间锁定文件

尽管标题提到了文件,但它不一定是文件.任何锁定机制都可以. 这里是情况:我有一个用C编写的守护进程,一个用php编写的网页.我希望有一种相互锁定的方法,以便在某些情况下,C守护程序可以锁定文件,而php会检测到这种情况,并告诉客户端系统正忙. 有一种简单的方法吗? 谢谢 解决方案 flock 正确执行. /p> 在您的PHP脚本中,使用非阻塞锁: $fd = fo ..
发布时间:2020-05-03 06:06:26 PHP

确保仅单个程序实例在运行

有没有一种Python方式可以只运行一个程序实例? 我想出的唯一合理的解决方案是尝试将其作为服务器在某个端口上运行,然后尝试将第二个程序绑定到同一端口-失败.但这并不是一个好主意,也许有比这更轻巧的东西了吗? (考虑到程序有时可能会失败,即segfault-因此“锁定文件"之类的东西将无法工作) 解决方案 以下代码可以完成此任务,它是跨平台的,可以在Python 2.4-3.2 ..
发布时间:2020-05-03 05:47:35 Python

JavaScript或jQuery中的关键部分

我有一个网页,其中异步触发某个Ajax事件。这个Ajax部分可以被调用一次或多次。我无法控制触发此事件的次数,也无法控制时间。 此外,Ajax部分中的某些代码应该作为临界区,意思是,当它运行时,该代码的其他副本不应该运行。 这是一个伪代码: 运行JavaScript或jQuery代码 输入Ajax的关键部分(当某个进程正在等待响应回调时,则不要再次进入此部分,直到此过程完成) ..