concurrency相关内容

包装速率限制API调用

我有访问一个API调用接受每秒呼叫的最大速率。如果超过该速率,抛出异常。 我想这个调用包装成做必要保持通话率限制下的抽象。它会像一个网络路由器:处理多个电话,并将结果返回到正确的调用者关心的拆借利率。的目标是使调用代码作为察觉尽可能有关的限制。 !否则,在具有此调用的代码的每一部分都必须裹成一个try-catch 例如:想象一下,你可以调用从可加2号一个外部API的方法。这个API可以 ..
发布时间:2016-09-07 12:01:56 C#/.NET

LINQ to SQL和并发问题

我们正在努力建设一个大批量定单记录系统。 有三个主要的表: 1.订单 2.订单明细 3. OrderShipment shipment表中包含每个订单的任何记录货物入口N记录可以在客户接受阶之前,被冻结后进行更改。 (业务需求) 虽然这可能在现实世界的场景在我们的负载测试中没有发生...... ,我们正在将System.Data.Linq。 ChangeConflictExc ..
发布时间:2016-09-06 15:21:19 C#/.NET

无扩展:用户并发内

我试图总结我的周围无扩展'的并发支持的头部和我有一个很难得到的结果我之后。所以,我可能没有的得到它只是还没有的 我有数据发射到流比用户可以更快地消耗它的来源。我更愿意配置使得另一个线程用于调用该用户从该流的每个新项,使得用户具有穿过它同时运行多个线程的流。我是能够保证用户的线程safeness 下面的示例演示了此问题: Observable.Interval(TimeSpan. ..
发布时间:2016-09-06 13:07:36 C#/.NET

为什么ConcurrentDictionary.GetOrAdd(键,valueFactory)允许valueFactory被调用两次?

我使用的是并发的字典作为一个线程安全的静态缓存,发现以下行为: 从的上GetOrAdd MSDN文档: 如果你调用GetOrAdd同时在不同的线程, addValueFactory可以多次调用,但其键/值对 可能不会被添加到词典中的每个呼叫。 我想是能够保证工厂只调用一次。有没有什么办法与ConcurrentDictionary API来做到这一点,而不诉诸我自己单独的同步( ..
发布时间:2016-08-30 15:13:31 C#/.NET

LINQ to SQL的异常,并连接():不能与一个关键是alredy使用添加实体

考虑这种典型断开的情况: 从使用LINQ to SQL的SQL Server加载一个Customer对象 用户编辑实体,并表示层发回修改的实体。 数据层,使用L2S,必须将这些更改发送到SQL Server 考虑这个LINQ to SQL查询,其目的是采取Customer实体。 卡斯特custOrig = db.Custs.SingleOrDefault(O => o. ..
发布时间:2016-08-30 13:33:53 C#/.NET

有什么用SyncRoot上图案?

我读描述SyncRoot上图案的C#的书。它显示了 无效doThis() { 锁定(本){...} }找时间做吧无效() { 锁定(本){...} } 和比较S​​yncRoot上的模式:对象SyncRoot上=新的对象();无效doThis() { 锁定(SyncRoot上){...} }找时间做吧无效() { 锁定(SyncRoot上){...} } ..
发布时间:2016-08-29 12:53:02 C#/.NET

实体框架线程安全

上下文对象由实体框架生成的不是线程安全的。 如果我使用两个单独的实体环境中,每个线程(并调用的SaveChanges()每个) - 将这个是线程安全的。 //此方法是从多个线程同时呼吁 公共无效IncrementProperty() { VAR语境=新MyEntities(); context.SomeObject.SomeIntProperty ++; context.Sa ..
发布时间:2016-08-28 14:43:09 C#/.NET

我怎么知道这个C#方法是线程安全的吗?

我工作的一个ASP.NET缓存项删除事件创建一个回调函数。 文档说我应该叫一个对象或来电,我知道会存在(将在范围内),如一个静态方法上的一个方法,但它说我需要确保静态是线程安全的。 第1部分:有什么事我可以做,使一些例子是联合国线程安全的。? 2部分:这是否意味着,如果我有 静态INT addOne(INT someNumber){ INT富= someNumber; 返回 ..
发布时间:2016-08-28 13:56:52 C#/.NET

辛格尔顿仔细检查并发问题

休耕子句从jetbrains.net取 读这篇文章,一些其他文章在网络上后,我还是不明白怎么可能返回null,则第一个线程进去了锁之后。 有一种人,不明白可以请帮我和更人性化的方式解释一下吗? “请考虑以下一段code的: 公共类Foo { 私有静态的Foo实例; 私人静态只读对象挂锁=新的对象(); 公共静态美孚获得() { 如果(例如== NULL) { ..
发布时间:2016-08-28 13:43:43 C#/.NET

是C#结构线程安全的?

是一个C#结构线程安全的? 如果有例如一个: 结构数据 { INT _number; 公众诠释号码{{返回_number; }集合{_number =价值; }} 公开数据(INT数){_number =号; } } 在另一种类型的:类DadData { 公开资料海图{搞定;组; } } 在属性命名海图,线程安全的? 解决方案 没有,结构.NET本质上 ..
发布时间:2016-08-28 13:20:01 C#/.NET

僵局 - 转让计划

我想知道为什么这个程序可以有死锁 无效传输(INT从,到到,双量){ sem_t * sem_from,* sem_to; sem_from =(从)get_sem; //功能,从银行账户的说法得到信号 sem_to = get_sem(地); sem_wait(sem_from); sem_wait(sem_to); (从,量)退出; ..
发布时间:2016-08-24 15:00:28 C/C++

ncurses的,打印和当代获取字符串

C语言编写的应用程序的ncurses 。 A ,而循环使用,如果有新邮件到达一个队列,不断检查:如果是这样,印在屏幕上的消息,然后从队列中删除: 而(条件) { 如果(queue_not_empty) { printw(element_from_queue); 刷新(); 删除(element_from_queue); } } 目前相同的时间,但是,该方案应能从用户获得的输入字符串,然后将其 ..
发布时间:2016-08-24 14:55:43 C/C++

使用fork()和IPC用C最有效的矩阵乘法

我需要使用多个进程里用C实现并行矩阵乘法。据我所知,因为每个进程都有自己的私有地址空间,我将不得不使用某种形式的进程间通信(IPC)的。我做了一些环顾四周,找不到未使用多线程的实现。我在想,如果有人知道去这是最最好的方法,或者使用共享内存,消息传递,或管道?我不要求一个解决方案,而是,如果有谁知道,这两种方法将与矩阵乘法更有效率。或者,如果有一个共同的标准的方式与多个进程来做到这一点? 解决 ..
发布时间:2016-08-24 13:16:51 C/C++

从Linux的子进程修改全局变量

我来自一个C#的背景,我有一个有点艰难的时间与并发在C.我不会骗你......这是一个项目,我对学校做的一部分。虽然专业我与高级语言的工作,我的毕业论文的教授通过强制C中的整个类code(我们大多数人都很少用... :(没有经验)把我们下了车。 无论哪种情况下,返回到这个问题。我有一个全局整数变量(从0开始),需要直到它达到100至5进程同时增加(100%相当)。 基本上发生的事情是,而不是分 ..
发布时间:2016-08-24 12:53:14 C/C++

并发访问和自由的数据结构的

问题是这样的: 我有500它的指针指向500元素双向链表的数组。有10个线程其中并行运行。每个线程运行50圈,并试图释放在列表中的某些元素。 的列表进行排序(包含简单的整数),并有10并行运行的其他线程,搜索包含特定整数,在该节点访问其它卫星数据的节点。所以,节点是这样的: 结构节点 { INT关键; //使用的密钥来搜索这个节点 INT X,Y,Z; //卫星数据 结构节 ..
发布时间:2016-08-23 11:05:57 C/C++

重入和可重入用C?

我读了一本书叫的Linux系统编程。从这本书中引用: 有关系统调用等库函数是什么?如果你的 过程是写入文件或分配内存的中间, 和信号处理程序写入到同一文件或还调用的malloc()? 有些功能显然不是折返。如果程序是在 执行一个不可重入功能的中间和一个信号发生和 信号处理程序然后调用同一个不可重入函数,混沌 可随之而来。 但随后将遵循: 保证折返功能 保证是安全 ..
发布时间:2016-08-23 10:14:41 C/C++

并发使用多线程写入一个文件

我有打开使用标记 O_WRONLY文件中的用户级程序| O_SYNC 。程序创建256个线程其中尝试写入256个或更多个字节数据的每一给该文件。我想有一个共有128万的请求,使得它一共有大约300 MB的数据。一旦1280000请求已经完成程序结束。 我用 pthread_spin_trylock()来增加其跟踪已完成的请求数量的变量。为了确保每个线程写入一个唯一偏移,我使用 PWRITE()和 ..
发布时间:2016-08-22 14:44:32 服务器开发

如何prevent腐败与原子比较和交换实现并发LIFO栈

下面是一个简单的C程序演示,我用建于GNU实现并发堆栈有一个问题比较和交换上的Intel CPU。我花了一段时间来了解发生了什么事,但现在,我做我看到,它是深受提供的担保范围内的原子比较和交换。 当一个节点被从堆栈,改性弹出,然后放置回栈上,修改的值可能在栈的新头,破坏它。在test_get的评论描述导致此事件发生的顺序。 有什么办法能够可靠地使用具有相同的堆栈在同一个节点不止一次?这是一个夸 ..
发布时间:2016-08-22 14:32:06 C/C++

是阅读和不同的字节范围线程安全写入同一个文件?

我有一个文件名为“data.txt中”总是与50个字节的数据。 我有两个线程。 第一个线程,读取字节0到字节50的内容: 而(1){ 焦炭BUF [50]; FILE *计划生育=的fopen(“data.txt中”,“R”); FREAD(BUF,1,50,FP); /* 处理数据 */ FCLOSE(FP); } 第二个线程,将数据追加到文件( ..
发布时间:2016-08-21 21:57:47 C/C++