mutex相关内容

PHP 5.x同步文件访问(无数据库)

我最熟悉Java,C和C ++,其中有一些方法可以控制在任何给定时间只有一个线程正在访问资源.现在,我正在寻找类似的东西,但是在PHP 5.x中. 举一个例子来说明我的问题: 我有一个ASCII文件,它仅存储一个数字,即页面加载计数器的值.在应用程序部署时,文件将仅保留0.对于每次访问,该值将递增1.目标是跟踪页面加载. 当许多用户同时访问包含计数器的页面时,就会出现问题.当线程 ..
发布时间:2020-05-14 02:15:51 PHP

互斥量实现可以互换吗(独立于线程实现)

所有互斥量实现最终是否都调用相同的基本系统/硬件调用-意味着它们可以互换? 具体来说,如果我使用的是__gnu_parallel算法(使用的是openmp),并且我想使它们称为线程安全的类,那么我可以使用boost::mutex进行锁定吗?还是我必须写自己的互斥锁,例如此处 //An openmp mutex. Can this be replaced with boost::mut ..
发布时间:2020-05-14 02:15:46 C/C++开发

从std :: call_once抛出异常

C ++标准对使用抛出异常的函数(§30.4.4.2/2)的std::call_once执行规定如下: 2/效果:不调用其func的call_once执行是被动执行.调用其函数的call_once执行是活动执行.活动执行应调用INVOKE(DECAY_- COPY(std :: forward(func)),DECAY_COPY(std :: forward(args))...). 如果对f ..
发布时间:2020-05-14 02:15:42 C/C++开发

互斥体名称-最佳做法?

与此问题,命名互斥锁的最佳做法是什么?我意识到这可能会随操作系统以及版本(尤其是Windows的版本)而有所不同,因此请在回答时指定平台.我对Win XP和Vista感兴趣. 解决方案 全局互斥锁的真正安全名称是 + : MyApp Single Instance Mutex : {c96f7db4-d743-4718-bef0-8533 ..
发布时间:2020-05-14 02:15:40 其他开发

在C ++/Linux中,系统范围内的全局变量/信号量/互斥量?

是否可以在Linux上的C ++中创建系统范围的全局变量/信号灯/互斥锁? 这是原因:我有一个系统,该系统通常在不相关的数据上运行同一软件的多个副本.通常有4个作业,每个作业运行相同的软件.该软件有一小部分,在其中创建了一个占用大量内存的巨大图形.在该部分之外,内存使用量适中. 有时会发生2个作业同时到达相同的内存占用区域,并且整个系统开始交换的情况.因此,我们想通过在不同作业之间创建 ..
发布时间:2020-05-14 02:15:36 服务器开发

Android NDK互斥锁

我一直在将跨平台C ++引擎移植到Android,并注意到在调用 pthread_mutex_lock 时,它将莫名地(并且不一致)阻塞.该引擎已经在多个平台上使用了很多年,而有问题的代码已经多年没有改变了,所以我怀疑它是一个死锁或错误代码.它必须是我移植到Android的端口. 到目前为止,代码中有几个地方会阻塞pthread_mutex_lock.它也不是完全可复制的.挂起时,LogCa ..
发布时间:2020-05-14 02:15:31 移动开发

具有非平凡类型的C ++原子?

在 boost::atomic 并在 std::atomic 上使我感到困惑的是atomic接口是否应该支持非平凡类型? 也就是说,由于给定的(value-)类型只能通过将读取/写入包含在完整的互斥锁中来进行写入/读取,因为它具有非平凡的copy-ctor/assignment运算符,应该认为这是由std::atomic支持(升压明显表明它是UB). 我应该提供专业知识吗?文档谈论我自 ..
发布时间:2020-05-14 02:15:25 C/C++开发

信号量的实际用途是什么?

非二进制的.. 我从未遇到过需要使用信号量而不是互斥量的问题. 那么,这主要是理论上的构造,还是像Office这样的真正的Firefox,它们有使用它们的地方吗? 如果是这样,信号量的常见用法有哪些? 解决方案 我认为您已经知道信号量是什么,而您只是想知道它如何在“真实软件"上使用. “像Office一样的Firefox,Firefox有使用它们的地方吗?" 是的,“真实软件 ..
发布时间:2020-05-14 02:15:20 其他开发

需要互斥量来保护条件变量

据说需要Mutex来保护条件变量. 这里是对声明为pthread_cond_t 的实际条件变量的引用 或 普通共享变量count,其值决定信令并等待. ? 解决方案 这里引用的是声明为pthread_cond_t的实际条件变量还是正常的共享变量计数,其值决定了信令并等待? 两者都引用. 互斥锁使得可以检查共享变量(问题中的count),并且如果该变量的值不满足所 ..
发布时间:2020-05-14 02:15:18 其他开发

std :: mutex和std :: shared_mutex之间的区别

我在C++17中碰到了std::shared_mutex. std::shared_mutex到底是什么?它与std::mutex有何不同? 解决方案 如文档 shared_mutex类是一个同步原语,可用于保护共享数据不被多个线程同时访问.与其他有助于互斥访问的互斥锁类型相比,shared_mutex具有两种访问级别: 共享-多个线程可以共享同一个互斥锁的所有权. 专有-只 ..
发布时间:2020-05-14 02:14:54 C/C++开发

Ruby Semaphores?

我正在研究Ruby中"Fair Barbershop"问题的实现.这是用于课堂作业,但我不需要任何讲义.我一直在疯狂搜索,但似乎找不到找到与C语言中的信号相似的Ruby实现的信号量. 我知道这里有Mutex,那太好了.单一实现,完全可以实现这种信号量. 然后是条件变量.我以为这样做会很好,但是看着这些,每次等待呼叫都需要使用互斥对象,在我看来,我无法将数字值添加到信号量中(例如,我有7 ..
发布时间:2020-05-14 02:14:52 其他开发

获取互斥锁列表?

程序在启动时会创建一个互斥锁.我不知道此互斥锁的格式,所以我想知道是否有一种方法可以获取所有未放弃的互斥锁的列表,打开程序,获取新列表,并查看是否可以通过删除所有重复条目来找到互斥锁 有没有办法获得这份名单? 解决方案 如果您使用的是Windows,则 WinObj 可以为您显示已命名的互斥体.或者,您可以使用流程浏览器来找出特定流程具有哪些对象打开. ..
发布时间:2020-05-14 02:14:47 其他开发

信号量的共识数字是多少?

(我认为)共识编号互斥锁为2. 信号量的共识数字是多少(例如pthread_sem_ *中的数字)? 条件变量的共识数字是多少(例如pthread_cond _ *)? 解决方案 互斥量的共识数将为1.很明显,互斥量对于单个线程是免费的.从其定义来看,很明显互斥体不再等待两个线程.因此,共识数为> = 1和 ..

如何在NodeJS中锁定(Mutex)?

有些外部资源(通过API访问可用清单)只能一次访问一个线程. 我的问题是: NodeJS服务器可同时处理请求,我们可能同时有多个请求试图保留库存. 如果我同时点击库存API,那么它将返回重复的可用库存 因此,我需要确保我一次点击了清单API. 我无法更改清单API(旧版),因此,我必须找到一种同步Node.js服务器的方法. 注意: 只有一台nodejs服务器正在运行 ..
发布时间:2020-05-14 02:14:33 其他开发

进程之间并发文件写入

我需要将来自不同进程的日志数据写入单个文件. 我使用的是Windows Mutex,它需要公共语言运行时支持. Mutex^ m = gcnew Mutex( false,"MyMutex" ); m->WaitOne(); //... File Open and Write .. m->ReleaseMutex() 我真的需要从C ++更改为C ++/CLI进行同步吗? 如 ..
发布时间:2020-05-14 02:14:29 C#/.NET

互斥体所有权队列顺序

说,如果我有三个线程都通过互斥锁访问相同的互斥部分. 让我给你这个例子. 第一个线程探测互斥锁并首先获取其所有权: //THREAD 1 //TIME: 2013-03-13 01:00:00.000Z WaitForSingleObject(hMutex, INFINITE); //Performs the operation that lasts 50 ms Releas ..
发布时间:2020-05-14 02:14:19 C/C++开发

使用命名的互斥锁

我有两个运行相同Windows服务的实例.他们互相检查健康状况,并报告是否发现任何问题.我有一项关键的工作需要执行,因此我正在使用故障转移方法运行它,它在Master中运行,如果Master没有响应,则它在Slave中运行.这项工作需要通过特定的串行端口进行通信,我正在尝试使用Mutex检查竞争状况.我无权访问生产环境,因此在部署之前,我想确保我的方法是正确的.因此,请建议在给定的情况下我是否可以 ..
发布时间:2020-05-14 02:14:15 C#/.NET

在Ruby中将类实例变量用于互斥量

注意:下面显示的代码摘要不是对我遇到问题的代码的提炼.由于其他人已经回答了,所以我在这里留下了原始摘要,但是我在下面提供的答案中显示了 actual 代码. 我无法将其隔离到一个失败的小测试用例中,但是以下通用构造使我失败了: class Foo @mutex = Mutex.new .... def self.bar @mutex.synchronize { ..
发布时间:2020-05-14 02:14:12 其他开发