问题标签 [shared-resource]
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.
asp.net-core - 共享资源本地化不起作用
我正在研究Asp .Net Core 3.1中的共享资源本地化。为此,我创建了资源目录并创建了 SharedResources.cs 文件。
我在控制器中注入了代码。
在SharedResources.en.resx
在SharedResources.cs
它显示Error并且应该显示Invalid User。我哪里错了?
c++ - C ++,如何为多个线程高效地共享1个资源数组
描述:
我有多个线程(4-32)。这些线程都可以访问一个数组:int resources[1024]。资源数组包含不同的值 (0-1023)。单个资源(int)只能有一个实例。每个线程需要不同数量的资源,这些资源有时会返回到数组中。线程可以多次请求资源,并且一次只返回部分获取的资源。每个线程都通过 2 种方法访问该数组:GetElement()、ReturnElement(int element)
GetElement():此方法锁定部分,从资源数组中删除最后一个元素并将其返回给调用线程。每个线程都在循环调用 n 个资源的方法。
ReturnElement(int element):此方法锁定部分,将参数中的资源元素附加到数组中的最后一个元素之后。每个线程都在循环调用 n 个资源的方法。
当前的实现存在缺陷,即当多个线程同时获取资源时,它们可能都没有获得所需的数量。我正在考虑在单个线程获取或返回资源时锁定对数组的访问,然后解锁它。这种方法阻塞了所有其他可能成为问题的线程。
有没有更有效的方法?
php - 在共享目录中的 Docker 进程文件上运行的多个应用程序
我有两个或更多 PHP 应用程序在 Docker 上运行,它们处理共享目录中的文件。所以我需要一个锁定系统来防止这些应用程序在同一个文件上工作。例如:目录中有3个文件,如果app1在file1上工作,app2必须跳过这个file1并传递给file2。我在应用程序中有这样的脚本:
我尝试使用文件或目录作为锁,例如,如果 file1.lock(file or directory) 存在,它就会被锁定。
它可以工作,但如果发生崩溃或中断,我认为最好使用即使 PHP 本身崩溃也可以清理或释放的东西。所以我在考虑:
- 信号量,但它不起作用,因为每个应用程序都在 Docker 上运行,进程是隔离的,对吧?
- 在端口上打开一个套接字,如果该端口已经打开,则它被锁定。但是我们有几个文件要处理,并且文件的数量不固定。我们该如何处理呢?
在这种情况下,有没有比使用文件或目录更好的方法?
python - Python中是否有带键的同步锁?
我需要一个 Lock 对象,类似于multiprocessing.Manager().Lock()
它只允许从实际获取它的进程中释放。
我的手动实现将类似于以下内容:
要创建此锁的实例并从多个进程中使用它,我将使用自定义管理器类:
然后我可以从不同的过程中执行以下操作:
这按预期工作,但对于一个相对简单的任务来说似乎是一项相当大的努力。 所以我想知道是否有更简单的方法来做到这一点?
c++ - 互斥锁是否会锁定自身,或者有问题的内存位置?
假设我们有一个全局变量和一个全局非成员函数。
我们有
然后在其中一个线程中,我们有这段代码:
现在,在另一个并行运行的线程中,如果我们这样做会发生什么:
所以问题是,互斥锁是否仅在被另一个线程拥有时锁定自己,而不关心在关键代码中试图访问的内容?还是编译器或在运行时,操作系统实际上将关键代码中正在访问的内存位置指定为现在被 MutexObject 阻止?
我的猜测是前者,但我需要听取经验丰富的程序员的意见;感谢您花时间阅读我的问题。
multithreading - 多线程共享资源同步
我在多线程和共享资源同步方面遇到了鸡或蛋的问题,目前迷路了,我请求你的帮助。这是条件。
[条件一]
- 有在进程内共享的共享资源。
- 共享资源由管理器类管理。
- 管理器类具有用于管理资源的线程安全函数。(例如添加/删除/获取)
- 线程安全是通过锁定对第一个线程进入的共享资源的访问来实现的。
- 每当每个线程需要共享资源时,它都会通过调用管理器类的函数来获取资源。(瓶颈问题)
为了解决这个问题,我想到了事先从经理那里按数组获取所有当前资源。
[条件2]
- 线程(主)在其他线程开始之前访问所有管理器并获取所有资源。
- 每个其他线程处理“给定资源”。(线程的每个“给定资源”不在线程之间共享)
- 现在,瓶颈问题消失了。(从技术上讲,瓶颈并没有消失,只是操作阶段被“划分”了)但是,出现了2个问题。
- 管理器中的线程安全指令变成了无用的开销。
- 每个线程中的所有条件检查在技术上都变得毫无用处。
问题2详细
- 线程 A 处理“给定资源”的空值,它不是空值。
- 如果线程 B 调用并从管理器中删除给定的资源,
- 线程 A 继续处理非空资源,实际上是空的,这是严重错误。
在这一点上,我想到了重要的事情是什么时候同步。
此外,上述问题 2 已经在条件 1 中打开,因为此时给定的资源是有效的,但在那之后,就不能保证资源的有效性。
我的问题是,你如何处理这个问题?
到目前为止,我的结论是“重要的是何时同步”。
但这意味着需要固定多线程处理时间。然后,所有这些锁或原子都是不必要的。
c++ - 共享资源单线程写入,多线程读取使用互锁
我正在尝试使用 C++、windows 环境中的互锁来实现共享资源管理的单线程写入、多线程读取机制。
Q1。结果代码似乎按我的意图工作,但如果我遗漏了什么,我想请教您的智慧。
Q2。如果有一个真实的生活或良好的主动开源代码示例我可以参考,将不胜感激。
以下是我考虑的目标。
- 写入只能由单线程执行,并且在写入时必须阻止读取,以避免“不变”中断。
- 读取可以由多个线程执行。