问题标签 [shared-state]

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

asp.net-mvc - 什么是 ASP.NET MVC 应用程序中的共享状态?

在最近的Stackoverflow 播客 (#59)中,Jeff Atwood 提到 Stackoverflow 有一些“共享状态”。我了解共享状态的一般概念,但是在 ASP.NET MVC 应用程序(如 Stackoverflow)的上下文中,共享状态到底是什么?

具体来说,我想知道以下内容:

  1. 它是什么样子的?如何在荒野中发现它?
  2. 它给系统带来了哪些限制?
  3. 你如何摆脱它?
  4. 如果它如此糟糕,为什么有人会将它包含在他们的设计中?
0 投票
5 回答
352 浏览

distributed-cache - 存在哪些可以处理本地语言对象的共享状态分布式系统?

据我所知,有兵马俑和磁悬浮。还有其他人吗?

0 投票
1 回答
938 浏览

concurrency - “消息传递/共享状态”的困境(并发和分发)是否以“圣战”的形式出现?

关于哪个模型更好的讨论情况,我不太了解,所以我想问一个非常直截了当的问题:看起来是不是两个对立的观点真的引起了激烈的争论?例如,基于原型/类的 OOP 或动态与静态类型

(虽然这些真的不是很合适的例子,我只是不知道如何更清楚地表达我的问题)

0 投票
2 回答
1753 浏览

c++ - 在模板实例之间共享静态成员?(不可能的?)

我正在做一些可能很愚蠢的事情,但如果它有效,那就太好了。

我试图以一种我需要自己的查找结构的方式专门化类型,该查找结构本质上是全局的(但理想情况下封装为类变量),但我希望对象是类型安全的,因此它们是参数化的。

因此,我基本上有

无论出于何种原因,直到我去初始化lookupTable时我才想到,当我说

将有许多不同lookupTable的 s 附加到SpecialArray.

我怀疑这可能只是一个白日梦,正确的答案就是让它成为一个单独的全局单例对象,但无论如何,有没有办法让lookupTable所有的SpecialArrays 都只有一个?

就像,在我心目中的 C++(这不是真正的 C++)中,这会像

...但遗憾的是 GCC 并没有在我的脑海中编译 C++

有没有什么实际的方法可以得到我想要的东西(在 C++0x-land 的某个地方或其他地方)?我也可能会使用一些操纵此查找表的静态方法(它不跟踪类型或 Ns)遇到这个问题。

...对不起,如果这没有任何意义。

提前感谢您提供的任何帮助或同情。

0 投票
2 回答
541 浏览

java - 如何将变量共享给 Java 中的线程?

我的程序将使用线程,但一些变量,如链接/页面的集合、有关查询的信息(如果正在更新或没有)和其他一些信息(布尔字段、整数字段等)必须由线程共享。

在这种情况下,所有线程将处理相同的工作,但在集合的不同元素中。

我想知道是否有一种方法可以做到这一点,而不仅仅是创建一个类/对象来保存这些共享数据。

我的情况:我的数据库中有很多页面需要处理,我无法一次全部恢复。在每个线程中,我都有一个布尔字段来通知页面列表是否正在使用来自数据库的链接进行更新。每个线程都有一个包含要处理的页面的集合。

在过去的节目中,我有类似的情况。为了解决这个问题,我创建了一个持有这些状态的 Master 和从 Master 那里获取信息的 Slave。但是现在我想不使用 Master,只使用 Slave,但我需要知道是否有一种方法可以让所有线程只有一个变量。

示例:如果 thread1 自动将某个布尔值更新为 true,则所有其他线程都将此布尔值设为 true。

0 投票
1 回答
486 浏览

c# - 如何在 ASP.NET MVC 3 应用程序中实现共享状态?

我正在编写一个基本的 RESTful 服务,并决定使用 ASP.NET MVC 3 来完成这项任务。我的应用程序将负责维护每个用户与服务器的持久连接(目前)。我曾假设这Application_Start是注册静态/共享状态(如持久连接)的地方,但在阅读了 Unity.MVC3 的文档后,似乎每个请求/响应周期都会触发服务的创建(通过调用 Application_Start)。

我参考的文档说:

在每个请求中,DependencyResolver 通过 Unity 实例化一个 UpperCaseService、一个 LowerCaseService 和一个 ExampleContext。在请求结束时,ExampleContext 被自动释放

在阅读了其他文档之后,根据我的假设,Application_Start 将在每个生成的 AppDomain 中调用(再次假设这将在服务器上有多少核心附近)。

那么,维护一组与服务器的持久连接、在请求/响应阶段幸存下来,并且如果可能的话,在 IIS 服务器创建的所有 AppDomain 之间共享的有效方法是什么?

提到这个 Web 服务只会被另一个网站使用可能会有所帮助。它本质上是一个身份验证代理服务器,但是,在未来,它会做更多的事情。因此,我不能只缓存响应,因为将来需要请求,并且重新验证不是一种选择。

0 投票
4 回答
1963 浏览

c++ - 两个线程使用同一个变量

我有两个线程:'main' 和 'worker',以及一个全局变量bool isQuitRequestedmain线程将使用它来通知worker何时退出其 while 循环(类似这样while(isQuitRequested == false) { ... do some stuff ... }:)

现在,我有点担心......isQuitRequested考虑到只有一个线程 ( main) 执行isQuitRequested = true操作,而另一个 ( worker) 只执行检查而没有别的,我是否需要对 使用某种互斥保护?

我已阅读如果两个线程同时访问同一个 bool 变量会发生什么?. 我有类似的情况,但情况不一样......

0 投票
1 回答
400 浏览

haskell - 共享可变状态:何时使用 IORefs

我有一个写入 Map 和 PSQ 的主线程。在 Map 和 PSQ 中,我使用相同的键,因此通过查看 PSQ,可以找到具有最小优先级的条目,复杂度为 O(1),并映射到 Map 中的值。

现在,虽然我的主线程在需要时添加/修改了 Map 和 PSQ,但我有第二个线程不断(forever $ do)查看 PSQ 以确定最旧的密钥何时是 N 毫秒前,然后应该刷新它。

为此,两个线程都需要查看相同的可变数据。这里保持状态的最佳方法是什么?这会是 IOREfs 的情况吗?还有什么可能的方法来解决这个问题?

“一些”预阿尔法代码在这里:

0 投票
3 回答
1232 浏览

haskell - Haskell并发使用简单的IORef?

我一直在问一些关于 Haskell 并发的问题,特别TVarTVar.

相反,我提出了这个解决方案。

(1) 将程序中的所有共享数据包装在一个数据结构中,并将其包装在一个IORef. (2) 只需使用atomicModifyIORef.

我相信这可以防止死锁和活锁(而 TVar 只能防止前者)。此外,因为atomicModifyIORef只是将另一个 thunk 链接到一个链中(这是几个指针操作),所以这不是瓶颈。对数据的所有实际操作都可以并行完成,只要它们不相互依赖即可。Haskell 运行时系统会解决这个问题。

然而我觉得这太简单了。有没有我错过的“陷阱”?

0 投票
1 回答
2738 浏览

php - 将变量从一个控制器方法传递到另一个

我正在使用 CodeIgniter 框架。我加载了一个主视图,其中包含几个选项卡,这些选项卡<div>通过 AJAX 加载其他视图。我的控制器类如下所示:

}

我通过调用加载主页mywebapp/main/123。可id用于main方法和main_view. 但是当我单击选项卡时,我也想id<div>in 中使用main_view。最好的方法是什么?也许有什么方法可以使这个变量对控制器中的每个方法都是全局的?

我使用 jQuery 加载选项卡: