问题标签 [readwritelock]

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 投票
0 回答
29 浏览

docker - 在容器环境中为更新进程锁定资源(读写锁)

我有一个 python 应用程序,它使用主数据访问数据库(PostgreSQL)以便在其中进行搜索 - 由搜索线程(一个 150 mb 数据库)完成。

每天有一次更新数据库的更新过程(删除并加载新表) - 在更新期间,搜索线程被阻塞,直到更新完成。

今天,它是在应用程序级别使用读写锁实现的。现在我们正在进入一个搜索进程,每个进程都在 docker 容器中运行

在新环境中实现此功能的最佳方式是什么?(使用分布式锁?数据库级别的显式锁定?...)

我看到了分布式锁的 Redis 实现,似乎它们是独占的而不是 RW。

0 投票
1 回答
235 浏览

android - 使用 makeReadOnly() 写入锁 Ntag 424DNA 抛出失败错误

使用https://github.com/whitedogg13/react-native-nfc-manager -> 使用此插件创建反应原生 NFC 读/写应用程序 。但是在将 NDEF 记录写入标记后,我无法写入锁。

NDEF 记录写入成功,但写入锁失败。下面给出的是使用的标签信息。

相同的标签可使用 NXP “TagWritter” android 移动应用程序写入锁定。

他们是否有任何方式使用 transceive() 方法来锁定/更改特定的“锁定位”或启动一些用于 NFC 写锁定的自定义命令。

0 投票
0 回答
73 浏览

java - 读写锁的性能会比传统锁差吗?

甲骨文

读写锁是否会比使用互斥锁提高性能取决于数据被读取与修改相比的频率、读写操作的持续时间以及数据的争用——即即,将尝试同时读取或写入数据的线程数。

作为初学者,我需要有人帮助我清除一些东西。引号中的文本是有道理的,因为通常为什么我们希望一个阅读器线程等待另一个阅读器线程?这样,使用ReadWriteLock,我们可以在阅读器中实现并发,而不是在每个线程之间完全互斥。

所以我想,为什么不总是使用ReadWriteLock而不是conventional锁呢?无论我的读者是否很少,都可能出现两个读者同时尝试访问共享资源的情况。但这听起来太容易了,而且为什么这些规则会告诉我什么时候选择ReadWrite

有人能告诉我我错过了什么吗?在我看来,我总是更喜欢ReadWrite反对conventional锁,因为尽管可能会有很少的读者/不长的操作/很少的线程争用,但仍然可能会出现这样一种情况,即我可以从读者的“少量给定并发”中获利。

0 投票
1 回答
77 浏览

c++ - 提升多线程异常

我有一个程序main.cpp

当我运行这个文件时

g++ main.cpp -lboost_system -lboost_thread -g -o main && ./main

表明

我知道它在第 33 行崩溃,函数中的注释行

环境:Boost 版本为 1.54

我的问题是:程序是multiple-read/single-write,如果 MutexClass 已经运行析构函数,在不同的线程中运行 doSomeThing 时如何避免这种情况。
并且只能添加try/catch块?
谢谢!

0 投票
0 回答
16 浏览

windows-10 - 如何阻止 Windows 10 自动重新打开文件夹的写保护?

奇怪的是,我的个人资料文件夹中的所有文件夹都受写保护,我无法将其关闭。每次我尝试删除写保护时,它都会自动重新打开。这会导致很多问题。除非我使用资源管理器手动创建程序,否则程序无法在我的配置文件中写入文件。

有没有人经历过这种情况并且知道如何摆脱它?

0 投票
1 回答
195 浏览

java - 写锁优先访问java readWrite锁中的关键区域?

我需要编写器线程优先于读取器线程访问关键区域,我可以使用 ReadWriteLock 接口来执行此操作吗?

0 投票
1 回答
46 浏览

python - 如何在 Python 线程中不加锁地读取变量?

我正在使用 Python 线程同时做一些工作。我让主线程执行task_A,并创建一个线程同时执行task_B。以下是我正在处理的代码的简化版本:

我知道上面的代码没有做任何有意义的事情。请把它当作一个简化的例子。如您所见,变量array在主线程和新创建的线程中都是只读的t1。因此,不需要锁定array主线程和t1线程,因为它们都不会修改(或写入)变量。但是,当我对代码进行计时时,Python 线程似乎会自动锁定线程之间共享的变量,即使它们是只读的。有没有办法让每个线程同时运行而不锁定只读变量?我找到了这段代码,但无法弄清楚如何将其应用于我的情况。