问题标签 [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.

0 投票
1 回答
352 浏览

asp.net-core - 共享资源本地化不起作用

我正在研究Asp .Net Core 3.1中的共享资源本地化。为此,我创建了资源目录并创建了 SharedResources.cs 文件。

我在控制器中注入了代码。

SharedResources.en.resx

SharedResources.cs

它显示Error并且应该显示Invalid User。我哪里错了?

0 投票
1 回答
107 浏览

c++ - C ++,如何为多个线程高效地共享1个资源数组

描述:

我有多个线程(4-32)。这些线程都可以访问一个数组:int resources[1024]。资源数组包含不同的值 (0-1023)。单个资源(int)只能有一个实例。每个线程需要不同数量的资源,这些资源有时会返回到数组中。线程可以多次请求资源,并且一次只返回部分获取的资源。每个线程都通过 2 种方法访问该数组:GetElement()、ReturnElement(int element)

GetElement():此方法锁定部分,从资源数组中删除最后一个元素并将其返回给调用线程。每个线程都在循环调用 n 个资源的方法。

ReturnElement(int element):此方法锁定部分,将参数中的资源元素附加到数组中的最后一个元素之后。每个线程都在循环调用 n 个资源的方法。

当前的实现存在缺陷,即当多个线程同时获取资源时,它们可能都没有获得所需的数量。我正在考虑在单个线程获取或返回资源时锁定对数组的访问,然后解锁它。这种方法阻塞了所有其他可能成为问题的线程。

有没有更有效的方法?

0 投票
1 回答
29 浏览

php - 在共享目录中的 Docker 进程文件上运行的多个应用程序

我有两个或更多 PHP 应用程序在 Docker 上运行,它们处理共享目录中的文件。所以我需要一个锁定系统来防止这些应用程序在同一个文件上工作。例如:目录中有3个文件,如果app1在file1上工作,app2必须跳过这个file1并传递给file2。我在应用程序中有这样的脚本:

我尝试使用文件或目录作为锁,例如,如果 file1.lock(file or directory) 存在,它就会被锁定。

它可以工作,但如果发生崩溃或中断,我认为最好使用即使 PHP 本身崩溃也可以清理或释放的东西。所以我在考虑:

  • 信号量,但它不起作用,因为每个应用程序都在 Docker 上运行,进程是隔离的,对吧?
  • 在端口上打开一个套接字,如果该端口已经打开,则它被锁定。但是我们有几个文件要处理,并且文件的数量不固定。我们该如何处理呢?

在这种情况下,有没有比使用文件或目录更好的方法?

0 投票
1 回答
63 浏览

python - Python中是否有带键的同步锁?

我需要一个 Lock 对象,类似于multiprocessing.Manager().Lock() 它只允许从实际获取它的进程中释放。

我的手动实现将类似于以下内容:

要创建此锁的实例并从多个进程中使用它,我将使用自定义管理器类:

然后我可以从不同的过程中执行以下操作:

这按预期工作,但对于一个相对简单的任务来说似乎是一项相当大的努力。 所以我想知道是否有更简单的方法来做到这一点?

0 投票
1 回答
284 浏览

c++ - 互斥锁是否会锁定自身,或者有问题的内存位置?

假设我们有一个全局变量和一个全局非成员函数。

我们有

然后在其中一个线程中,我们有这段代码:

现在,在另一个并行运行的线程中,如果我们这样做会发生什么:

所以问题是,互斥锁是否仅在被另一个线程拥有时锁定自己,而不关心在关键代码中试图访问的内容?还是编译器或在运行时,操作系统实际上将关键代码中正在访问的内存位置指定为现在被 MutexObject 阻止?

我的猜测是前者,但我需要听取经验丰富的程序员的意见;感谢您花时间阅读我的问题。

0 投票
0 回答
36 浏览

multithreading - 多线程共享资源同步

我在多线程和共享资源同步方面遇到了鸡或蛋的问题,目前迷路了,我请求你的帮助。这是条件。

[条件一]

  • 有在进程内共享的共享资源。
  • 共享资源由管理器类管理。
  • 管理器类具有用于管理资源的线程安全函数。(例如添加/删除/获取)
  • 线程安全是通过锁定对第一个线程进入的共享资源的访问来实现的。
  • 每当每个线程需要共享资源时,它都会通过调用管理器类的函数来获取资源。(瓶颈问题)

为了解决这个问题,我想到了事先从经理那里按数组获取所有当前资源。

[条件2]

  • 线程(主)在其他线程开始之前访问所有管理器并获取所有资源。
  • 每个其他线程处理“给定资源”。(线程的每个“给定资源”不在线程之间共享)
  • 现在,瓶颈问题消失了。(从技术上讲,瓶颈并没有消失,只是操作阶段被“划分”了)但是,出现了2个问题。
  1. 管理器中的线程安全指令变成了无用的开销。
  2. 每个线程中的所有条件检查在技术上都变得毫无用处。

问题2详细

  • 线程 A 处理“给定资源”的空值,它不是空值。
  • 如果线程 B 调用并从管理器中删除给定的资源,
  • 线程 A 继续处理非空资源,实际上是空的,这是严重错误。

在这一点上,我想到了重要的事情是什么时候同步。

此外,上述问题 2 已经在条件 1 中打开,因为此时给定的资源是有效的,但在那之后,就不能保证资源的有效性。

我的问题是,你如何处理这个问题?

到目前为止,我的结论是“重要的是何时同步”。

但这意味着需要固定多线程处理时间。然后,所有这些锁或原子都是不必要的。

0 投票
0 回答
30 浏览

c++ - 共享资源单线程写入,多线程读取使用互锁

我正在尝试使用 C++、windows 环境中的互锁来实现共享资源管理的单线程写入、多线程读取机制。

Q1。结果代码似乎按我的意图工作,但如果我遗漏了什么,我想请教您的智慧。

Q2。如果有一个真实的生活或良好的主动开源代码示例我可以参考,将不胜感激。

以下是我考虑的目标。

  • 写入只能由单线程执行,并且在写入时必须阻止读取,以避免“不变”中断。
  • 读取可以由多个线程执行。