synchronization相关内容

mysql中的同步存储过程执行

我在 mysql 中有一个存储过程,用于执行需要同步的任务,这样如果两个应用程序调用存储过程,只有一个可以访问一段代码来执行任务,让另一个被阻塞,直到第一个完成任务. 分隔符 $$创建过程 SP_GEN_ID(IN NAME VARCHAR(20))开始DECLARE maxLen int 默认 0;开始交易;#需要同步的代码段犯罪结尾;$$分隔符; 因此,如果两个应用程序同时调用存储过程,则 ..

调用者阻塞直到 getFoo() 准备好一个值?

我有一个 Java Thread,它公开了其他线程想要访问的属性: 类 MyThread 扩展 Thread {私人 Foo foo;...富 getFoo() {返回富;}...公共无效运行(){...foo = makeTheFoo();...}} 问题是从它运行到 foo 可用需要很短的时间.调用者可以在此之前调用 getFoo() 并获得 null.我宁愿他们在初始化发生后简单地阻塞、 ..
发布时间:2022-01-22 20:27:32 Java开发

列出<T>没有实现 SyncRoot!

每个人都使用很多列表.我需要遍历这个列表,所以我使用已知的 SyncRoot 模式. 最近我在 这篇 帖子中注意到 SyncRoot 应该是避免支持“嵌入式"线程安全(每个方法都将锁定一个私有对象,而不使用 SyncRoot 属性公开它).我可以理解,并且部分同意. 问题是 List 类没有t 实现 SyncRoot 属性,即使实现 ICollection 接口,它公开了 Syn ..
发布时间:2022-01-22 20:27:23 C#/.NET

测试 Java 方法是否同步的好方法是什么?

我有几个类实现了一些接口.该接口有一个合同,一些方法应该同步,而有些方法不应该同步,我想通过所有实现的单元测试来验证该合同.这些方法应该使用 synchronized 关键字或锁定在 this - 非常类似于 synchronizedCollection() 包装器.这意味着我应该能够从外部观察它. 继续Collections.synchronizedCollection() 如果我有一个线 ..

如何同步访问 NAS 上的文件的两个进程?

事情是这样的:我有两个应用程序,用 C++ 编写并在两台具有不同操作系统(一台 Linux 和一台 Windows)的机器上运行.其中一个过程负责更新 NAS(网络附加存储)上的 XML 文件,而另一个则读取该文件. 是否可以同步这两个进程以避免在修改文件的同时读取文件? 解决方案 您可以在服务器上创建一个锁文件,该文件在您执行写入之前创建,等待然后写入并在完成时删除.让读取过程检查 ..
发布时间:2022-01-22 20:26:22 C/C++开发

Intel Inspector 在我的自旋锁实现中报告了数据竞争

我使用 Windows 中的 Interlocked 函数制作了一个非常简单的自旋锁,并在双核 CPU(两个线程递增一个变量)上对其进行了测试; 该程序似乎工作正常(每次都给出相同的结果,在不使用同步时情况并非如此),但 Intel Parallel Inspector 说在 value += j(见下面的代码).使用关键部分而不是我的 SpinLock 时,警告会消失. 我的 Spi ..
发布时间:2022-01-22 20:25:40 C/C++开发

使用条件变量在 Linux 中实现 Windows 事件?

我正在尝试在 Linux 中实现非常简单的 Windows 事件.仅适用于我的场景 - 3 个线程,1 个主线程和 2 个辅助线程.每个辅助线程通过 SetEvent 引发 1 个事件,主线程等待它.示例: int main(){无效*事件[2];事件[0] = CreateEvent();事件[1] = CreateEvent();pthread_start(线程,事件[0]);pthread ..
发布时间:2022-01-22 20:25:32 服务器开发

何时在 Java 中使用同步

我希望这将是足够的信息,所以就这样吧.如果您需要更多信息,请在评论中告诉我. 我有一个有两个内部类的类.每个内部类都有两个调用外部类中的方法的方法.所以,它看起来像这样: public OuterClass {私有布尔outerMethodHasBeenCalled = false;私人无效外部方法(){如果(!outerMethodHasBeenCalled){//做东西}外部方法Has ..
发布时间:2022-01-22 20:25:25 Java开发

将数据库从多个位置同步到中央数据库的策略,反之亦然

我有几个位于不同位置的数据库和一个位于数据中心的中央数据库.都具有相同的架构.所有这些都在每个位置使用不同的数据(包括中央数据库)进行更改(插入/更新/删除). 我想同步中央数据库中的所有数据.我还希望中央数据库中的所有数据同步到所有位置.我的意思是位置 1 的数据库更改也应该反映在位置 2 数据库中. 关于如何解决这个问题的任何想法? 解决方案 看看 SymmetricDS. ..
发布时间:2022-01-22 20:25:10 数据库

为什么 Java 和 C# 为每个对象添加内部锁?

让每个对象都可锁定看起来像是一个设计错误: 您为创建的每个对象都增加了额外的成本,即使您实际上只会在一小部分对象中使用它. 锁的使用变得隐式,使用 lockMap.get(key).lock() 比在任意对象上同步更具可读性,例如 synchronize (key) {...}. 同步方法可能会导致用户使用同步方法锁定对象的细微错误 您可以确定,在将对象传递给 3rd parting ..
发布时间:2022-01-22 20:25:00 Java开发

字典何时在 Add 或 ContainsKey 上引发 IndexOutOfRangeException?

在一个繁忙的 ASP .NET 网站上,我有一个字典,它充当缓存,基本上存储键/值对以供以后检索. 在高负载时,字典有时会进入一种状态,每当我调用 ContainsKey 或 Add 方法时,它总是抛出 IndexOutOfRangeException.异常发生在私有 FindEntry 方法中. 我怀疑这可能是由于同步问题,但我不确定. 谁能告诉我在什么情况下会发生这种情况?我 ..
发布时间:2022-01-22 20:24:51 C#/.NET

线程池程序在更快的服务器上运行得更慢

upd 我现在认为我的问题的根源不是“线程",因为我观察到我的程序的任何一点都变慢了.我认为不知何故,当使用 2 个处理器时,我的程序执行速度较慢,可能是因为两个处理器需要相互“通信".我需要做一些测试.我将尝试禁用其中一个处理器,看看会发生什么. ====================================== 我不确定这是否是 C# 问题,可能更多的是关于硬件,但我认为 ..
发布时间:2022-01-22 20:24:40 C#/.NET

SVN 到 Clearcase 导出

我有一位非常坚持使用 Clearcase 的客户.是否有任何工具/脚本可以让我的团队使用 SVN 存储库(或真正的任何东西,而不是 Clearcase),但会定期自动将变更集同步回 Clearcase VOB? 我的想法是,如果存在这样的工具,并且它是自动的、可靠的和透明的,那么客户端可能会被说服允许我们对抗 SVN. 谢谢,肯特 解决方案 我使用 Git 直接在 ClearC ..
发布时间:2022-01-22 20:24:33 其他开发

如何解决用于在 C++ 中维护静态局部变量的服务数据的线程安全问题?

考虑以下场景.我们有一个带有静态局部变量的 C++ 函数: 空函数(){静态 int 变量 = 获得();//废话} 该函数需要从多个线程并发调用,所以我们添加一个临界区来避免对静态本地的并发访问: void functionThreadSafe(){CriticalSectionLockClass 锁(criticalSection);静态 int 变量 = 获得();//废话} 但这足 ..
发布时间:2022-01-22 20:24:27 C/C++开发

如何让线程休眠,直到收到异步函数的回调?

我有一个函数,只有在从异步函数接收到回调时才需要执行. 喜欢 我调用异步函数 Stop() 之后不久我调用异步函数 Start(). 收到停止回调之前的问题 Start() 被调用,因此我遇到了问题.我也不能分开调用两个函数就像我不能这样做.: public void SomeFunction(){停止();}公共无效 Stop_CallBack(eventargs e){开始 ..
发布时间:2022-01-22 20:24:04 C#/.NET