问题标签 [synchronization]

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 投票
4 回答
1642 浏览

java - 线程同步问题(java中)

我的 java 应用程序有一个加载任务,它需要两个可以并行化的服务器调用。所以我启动了一个 Thread t1 (执行task1)和一个 Thread t2 (用于task2)。然后,我想在其他两个任务(1 和 2)都结束时执行特定任务task3 。自然我不知道task1task2中的哪一个会先完成......

哪种方法对您来说是最简单(也是最安全)的编码方式?

感谢您的帮助

0 投票
1 回答
880 浏览

outlook - Outlook 联系人同步 - 如何识别要同步的正确对象?

我有一个通过 CDO 将 Outlook 联系人同步到数据库(并返回)的 Web 应用程序。DB 只包含每个联系人一次(至少理论上,当然会发生双联),为联系人提供单点更改,无论有多少用户在 Outlook 中拥有该特定联系人(如交互或类似产品)。

同步过程不是自动的,而是用户初始化的。在用户决定同步他们的联系人之前,可以经过任意时间跨度。与此同时,其他用户可能已经更新了这些联系人的一个子集。

一般来说,这运行良好,但我从来没有能够解决这个基本问题:

我如何毫无疑问地识别邮箱中的联系人对象?

  1. 我不能依赖PR_ENTRYID,这个属性会随着联系人移动或邮箱移动而改变。
  2. 我不能依赖我自己的 ID(例如 DB 表 ID),因为这些会与联系人一起复制。
  3. 我绝对不能依赖姓名或电子邮件地址等字段,它们可能会发生变化和更新。

目前我使用 1(首选)和 2(后备)的组合。但不可避免地,有时用户会遇到同步到错误联系人的问题,因为没有一个给定的PR_ENTRYID,而是两个具有相同 DB ID 的,其中选择了错误的一个。

那里有一堆 Outlook 同步产品,所以我想这个问题一定是可以解决的。

0 投票
2 回答
1509 浏览

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

我最熟悉 Java、C 和 C++,其中有一些方法可以控制在任何给定时间只有一个线程正在访问资源。现在我正在寻找类似的东西,但在 PHP 5.x 中。

用一个例子来阐述我的问题:

我有一个 ASCII 文件,它只存储一个数字,即页面加载计数器的值。在应用程序部署时,该文件将简单地保存一个 0。对于每次访问,该值将增加 1。目标是跟踪页面加载。

当许多用户同时访问包含计数器的页面时,就会出现问题。当线程 A 读取当前值时,假设它是 11,我们称为 B 的另一个线程读取该值,仍然是 11。然后第一个线程 A 增加读取的值并将 12 写入文件并关闭它。然后第二个线程 B 增加读取的值,即 11,获取 12 并将其写入文件。值 12 存储在文件中,而实际上它应该是 13。

在另一种编程语言中,我会使用互斥锁来解决这个问题。我知道作为模块的一部分,有互斥锁、共享内存和其他功能。但我想要一个适用于“大多数服务器”的解决方案。独立于平台。安装在最便宜的网络主机上。这个问题有好的解决方案吗?如果没有,如果不能选择使用数据库,您会采取哪种方式?

0 投票
4 回答
4145 浏览

java - 您使用哪些 JDBC 工具来同步数据源?

我希望找出人们用来在数据库之间同步数据的工具。我正在寻找可以用作命令行工具的 JDBC 解决方案。

曾经有一个名为 Sync4J 的工具使用 SyncML 框架,但这似乎已经被淘汰了。

0 投票
4 回答
4180 浏览

java - 在字符串方法参数上同步java中的io操作?

基本上,我有一个具有 2 种方法的类:一种将对象序列化为 XML 文件,另一种用于从 XML 读取对象。这是恢复对象的方法中同步部分的示例:

序列化对象时采用类似的方法。现在,当我创建一个单元测试时,它依次创建 10 个线程,每个线程尝试序列化并立即读取布尔值或字符串,它会失败,表明发生 ClassCastExceptions。这让我觉得我弄错了序列化(在单线程环境中一切正常)。如果你一直和我在一起:),这里有两个问题我需要你的帮助:

  1. 对传递给方法的字符串参数进行同步是否有意义(考虑到 java 中有一个字符串池)?顺便说一句,我尝试在 XMLSerializer 类本身上进行同步,结果保持不变。
  2. 如何正确同步单个文件的 io 操作?
0 投票
3 回答
237 浏览

.net - 设计问题:应用程序中的共享、同步、数据访问……最好的方法?

我有一个 Web 应用程序 (asp.net),其中根据用户的工作量提交工作项并将其分配给用户。

用户的工作量是使用基于当前分配给用户的项目数(和一些其他因素)的算法计算的。每个新项目都分配给当前工作量最低的用户,从而增加了他们的工作量。当用户完成一个项目时,他们的工作量就会减少。项目将同时提交、分配和完成——因此工作量水平将不断变化。工作项存储在 SQL 数据库中。

我需要一种方法来确保每个分配决策都是使用整个用户群的最新工作负载图做出的。

我的想法是在缓存中提供工作负载信息的读/写同步存储。

这是最好的方法吗?或者我应该使用数据库来控制锁定?如何避免我的应用程序出现瓶颈?

建议非常感谢。

0 投票
2 回答
744 浏览

multithreading - 等待对象

谁能告诉我 WaitForObject() 函数的返回值是多少。
我不是指返回值 (int) 的类型。如果事件有信号,它会返回什么,如果事件没有信号,它会返回什么。

谢谢

0 投票
3 回答
610 浏览

error-handling - 在客户端和服务器之间同步变量

假设我有一个客户端计数器变量。当我向服务器发送请求时,我发送此变量的值,然后将其加一(用于对服务器的下一个请求)。服务器独立地跟踪这个计数器,并检查以确保客户端发送的计数比它自己的(服务器端)计数副本多 1。这一切都很好,但考虑以下情况:

  1. 例如,客户端向服务器发送 23。
  2. 服务器收到 23,对其进行验证,然后将自己的计数器增加到 23。
  3. 服务器返回 All-Okay 代码给客户端

-但-

从服务器到客户端的过程中,返回代码被破坏。客户端因此认为服务器没有更新其计数器,因此将客户端计数器保留为 23。从这一点开始,客户端和服务器不同步。

有没有人知道面对这种可能的腐败/错误时可以使用的任何强大的方案?

谢谢,
卡梅伦

0 投票
3 回答
4847 浏览

c# - Java的“同步”和C#的“锁”有什么区别吗?

这两个关键字是否具有完全相同的效果,或者我应该注意什么?

0 投票
4 回答
2918 浏览

shell - 在多台机器上保持 shell 配置同步

我是一个非常活跃的命令行用户,我到处都有 shell 帐户。MacBook、Linux 台式机、Linux 服务器、XP 上的 Cygwin,应有尽有。

如何使用所有平台上可用的有限工具使我的 shell 配置(.bashrc等)在所有这些机器上保持同步?.vimrc

我一直rsync在以非常有限的方式使用,包括在需要时手动复制一些文件,但我想要一种标准方法来在我的所有机器上设置相同的基本 shell 环境。告诉我你的 shell 账户管理策略。