问题标签 [concurrency]

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

c++ - 并发编程C++?

我不断听到有关并发编程的消息。你们能否阐明它是什么以及 c++ 新标准如何促进做同样的事情?

0 投票
6 回答
90531 浏览

java - Java 并发和并行 GC

本文建议使用-XX:+UseParNewGC“To enable a parallel young generation GC with the concurrent GC”。

我的困惑是,为了同时启用并行和并发 GC,我应该

  • 使用-XX:+UseParNewGC
  • 同时使用-XX:+UseParNewGC -XX:+UseConcMarkSweepGC?

附言

我正在使用 JVM 6。

0 投票
7 回答
9613 浏览

c++ - 并发的 C++03 内存模型是什么?

C++03中并发的内存模型是什么?

(而且,C++11 是否更改了内存模型以更好地支持并发?)

0 投票
1 回答
2153 浏览

c# - db4o 客户端/服务器似乎一次只能处理一个查询?

我们正在评估 db4o(来自http://www.db4o.com的 OO-DBMS )。我们已经为客户端/服务器模式进行了性能测试,我们启动了一个服务器,然后同时使用多个客户端对其进行锤击。似乎服务器一次只能处理一个客户端的查询。

我们是否错过了允许这种情况的某个配置开关?服务器实现如下。客户端对每个操作进行连接、查询(只读)和断开连接,并且操作从客户端进程中的多个工作线程中一个接一个地运行。如果我们在同一台服务器上启动一个客户端进程和一个工作人员,我们会看到相同的行为。

有什么建议么?

编辑:我们现在已经发现并尝试了惰性和快照查询模式,尽管这缓解了阻塞服务器问题(部分),但当我们的客户端(我们运行 40 个并发测试客户端等待 1在服务器上发出随机操作请求之前-300ms)锤子。似乎有来自 LINQ 提供程序和 IO 内部的异常:-(

0 投票
7 回答
123695 浏览

c# - 在 C# 中使用全局互斥锁的好模式是什么?

Mutex 类很容易被误解,全局互斥体更是如此。

创建全局互斥体时使用什么好的、安全的模式?

一个可以工作的

  • 无论我的机器所在的语言环境如何
  • 保证正确释放互斥锁
  • 如果未获取互斥锁,则可选地不会永远挂起
  • 处理其他进程放弃互斥锁的情况
0 投票
5 回答
2409 浏览

asp.net - 并发 ASP.NET 会话最佳实践

用户 A 登录工单管理系统以编辑“SomePage.aspx”上的内容

用户 B 在 30 秒后登录以在“SomePage.aspx”上编辑同一张票

通知每个用户其他人正在修改相同内容的一些最佳实践(在 3 层架构中)是什么?

0 投票
13 回答
5336 浏览

java - 我应该始终使我的 java 代码线程安全,还是出于性能原因仅在需要时才这样做?

如果我创建目前仅在单个线程中使用的类,我是否应该使它们成为线程安全的,即使我目前不需要它?可能会发生,我后来在多个线程中使用这个类,那时我可能会遇到竞争条件,如果我没有首先使类线程安全,可能很难找到它们。或者我应该让这个类不是线程安全的,以获得更好的性能?但是过早的优化是邪恶的。

不同的问题:如果需要,我应该使我的类线程安全(如果在多个线程中使用,否则不是)还是应该优化这个问题然后需要(如果我看到同步占用了处理时间的重要部分)?

如果我选择两种方式中的一种,是否有减少缺点的方法?还是存在我应该使用的第三种可能性?

编辑:我给出了我想到这个问题的原因。在我们公司,我们编写了一个非常简单的用户管理,将数据写入属性文件。我在一个网络应用程序中使用它,经过一些工作后我得到了奇怪的错误,用户管理忘记了用户的属性(包括名称和密码)和角色。这很烦人,但不能始终如一地重现,所以我认为这是竞争条件。由于我同步了从磁盘读取和写入的所有方法,因此问题消失了。所以我想,如果我们一开始就编写了带同步的类,我可能可以避免所有的麻烦?

编辑 2:当我查看实用程序员的技巧时,我看到了技巧 #41:始终为并发设计。这并不是说所有代码都应该是线程安全的,而是说设计应该考虑到并发性。

0 投票
4 回答
1081 浏览

haskell - 在 Haskell 中,如何在父进程和分叉子进程之间共享数据?

我什至如何首先使用 Haskell 来分叉一个子进程?

此外,如果管道是数据共享问题的明显解决方案 - 除了使用管道之外还有其他方法吗?我熟悉 C 中共享内存段的使用(shmget、*shmat、shmdt 和 shmctl 函数)。Haskell 可以模仿吗?如果是这样,怎么做?

如果您能提供任何帮助,我将不胜感激。

我必须承认我对函数式编程语言非常陌生,尤其是在 Haskell 方面。所以如果我说了些傻话,请原谅我(并请纠正我)。

0 投票
4 回答
556 浏览

.net - 衡量线程费用

Joe Duffy 在 MSDN 文章“ Using concurrency for scaling ”中指出,创建线程的成本约为 200,000 个周期,而销毁的成本约为 100,000 个周期。

当我尝试创建一个新线程来执行一些计算时,我想确保计算本身比 200,000 个周期更昂贵。

我如何测量 CPU 周期?我认为这比测量执行时间更有趣。

0 投票
6 回答
2161 浏览

asp.net - 防止用户在同一行上工作

我有一个类似于票务工作系统的 Web 应用程序。一些用户输入新问题。其他工人选择并解决问题。所有数据都保存在 MS SQL server 2005 中。

致力于解决问题的用户转到他们可以查看未解决问题的页面。因为多达 20 个人可以同时查看此页面,所以我必须解决的一个潜在问题是,如果有人在页面加载后选择了其他人选择的问题,会发生什么情况。

为了解决这个问题,我做了两件事。首先,显示要选择的问题的网格视图使用 AJAX 计时器每秒更新一次。一旦选择了一个问题,它最多会在一秒钟后消失。如果他们在这一秒内选择了一个,他们会收到一条消息,要求他们选择另一个。

问题是其中的 AJAX 部分发送了太多更新(这是我假设的),并且影响了页面和数据库的性能。此外,更新并不是每秒都在执行。我发现在触发存储过程时计时器不可靠。

必须有更好的方法,但我似乎找不到。有没有人遇到过这样的情况,或者有建议让多个用户不要选择相同的记录来维护?我真的不想完全禁用 AJAX 部分,因为我觉得单独的消息会使应用程序使用起来令人沮丧。

谢谢,