问题标签 [static-members]
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.
asp.net - ASP.NET/静态类竞争条件?
我有一个包含大量动态内容的 ASP.NET 应用程序。属于特定客户端的所有用户的内容都是相同的。为了减少每个请求所需的数据库命中次数,我决定缓存客户端级数据。我创建了一个静态类(“ClientCache”)来保存数据。
迄今为止,该类最常用的方法是“GetClientData”,它返回一个 ClientData 对象,其中包含特定客户端的所有存储数据。但是,ClientData 是延迟加载的:如果请求的客户端数据已经缓存,则调用者获取缓存的数据;否则,获取数据,添加到缓存中,然后返回给调用者。
最终,我开始在将 ClientData 对象添加到缓存的行的 GetClientData 方法中出现间歇性崩溃。这是方法体:
异常文本总是类似于“已存在具有相同键的对象”。当然,我尝试编写代码,以便如果客户端已经存在,则无法将其添加到缓存中。
在这一点上,我怀疑我有一个竞争条件并且该方法同时执行了两次,这可以解释代码是如何崩溃的。但是,我感到困惑的是,该方法如何可以同时执行两次。据我所知,任何 ASP.NET 应用程序一次只能处理一个请求(这就是我们可以使用 HttpContext.Current 的原因)。
那么,这个错误是否可能是一个需要在关键部分加锁的竞争条件?还是我错过了一个更明显的错误?
c++ - 静态与外部“C”/“C++”
静态成员函数和外部“C”链接函数有什么区别?例如,在 C++ 中使用“makecontext”时,我需要传递一个指向函数的指针。Google 建议使用外部“C”链接,因为“makecontext”是 C。但我发现使用静态也可以。我只是幸运还是...
对比
编辑:您能否展示静态成员版本不起作用的编译器或体系结构(并且它不是编译器中的错误)?
java - 静态变量和方法
我遇到了一个这样设置的类:
我对静态方法的理解是,除非它们是常量并且不会更改,否则不应在其中使用类变量。相反,您应该使用参数。我的问题是为什么通过执行 MyClass.doSomething() 多次调用时这不会中断。在我看来,它不应该起作用,但确实起作用。它只会通过 if 语句一次。
那么有人可以向我解释为什么这不会中断吗?
c++ - 注册每个 C/C++ 源文件以创建使用源的运行时列表
对于调试和日志库,我希望能够在运行时找到项目已编译和链接的所有源文件的列表。我假设我将在每个源文件中包含某种标题,并且预处理器 __FILE__ 宏可以为我提供该文件的字符常量,因此我只需要以某种方式“广播”来自每个文件的信息以由 a运行时函数。
问题是如何优雅地做到这一点,特别是如果它可以从 C 而不是 C++ 中完成。在 C++ 中,我可能会尝试使用静态存储创建一个类来保存文件名列表。每个头文件都将创建该类的文件本地静态实例,该实例在创建时会将 FILE 指针或其他任何内容附加到类的静态数据成员中,可能作为链表。
但我认为这在 C 中不起作用,即使在 C++ 中,我也不确定是否可以保证每个元素都会被创建。
asp.net - ASP.NET Web 服务中的静态字段
Web 服务中的静态变量是否在服务器上所有正在运行的 Web 服务调用之间共享?
在我的情况下,我想要一个服务器范围的同步锁,我相信我可以通过一个单一的
那是对的吗?
objective-c - Objective-C 类方法的对象保留行为
保留和释放传递给类方法的对象的最佳实践是什么?
例如,如果您有一个像这样声明的“类变量”:
...这样做是正确的:
...它的缺点是调用者需要在参数上保持非零保留计数,以免它被过早释放。或者,可以这样做:
...它的缺点是如果没有相应的类级dealloc
调用,它会泄漏内存。或者是否应该完全避免这种类变量欺骗,也许使用一个以更传统的方式管理这些对象的生命周期的单例类?
我正在使用的代码是非常漂亮(但仍然是新的)Objective Resource 项目(http://www.iphoneonrails.com/)。
php - 如何初始化静态变量
我有这个代码:
这给了我以下错误:
解析错误:语法错误,第 19 行 /home/user/Sites/site/registration/inc/registration.class.inc 中的意外 '(', expecting ')'
所以,我想我做错了什么......但如果不是那样,我该怎么做呢?如果我用常规字符串更改 mktime 内容,它就可以工作。所以我知道我可以像那样做..
有人有一些指示吗?
asp.net - 如何防止静态成员变量在 IIS 中一次被多个请求访问?
我在理解 IIS 如何处理其线程上的静态变量时遇到了一些麻烦。我的理解一直是,如果 IIS 有 4 个工作进程,它可以同时处理 4 个请求,并且它与有 4 个单独的线程运行网站相同。任何静态变量都将保留在每个单独的线程中。我有点困惑的原因是我已经创建了一个范围来管理连接和缓存事务。当我测试应用程序时,我没有注意到任何问题,但是在我编译它并从两个不同的位置同时点击它之后,我似乎遇到了一种冲突。现在,如果这些工作进程是分开的,为什么会这样呢?可以在单个工作线程上同时处理多个请求吗?这一点非常重要,因为在这些静态成员中保存了唯一的 ID,以处理管理这些功能的对象的升级,并且看起来它们正试图访问同一个对象。
我在 x64 机器上的 Vista 的 IIS 服务器上运行它。
编辑
对于需要在单个请求上通过线程持续存在的值,我将这些值放入Web.HttpContext.Current.Items
其中似乎可以解决问题。
<ThreadStatic()>
可以使用,但在整个请求过程中可能不可用。在我拥有的一个模块中,仅在变量上使用以指示该线程是否已经加载了 cahcing 服务器的设置。如果为真,则tread(不是asp.net)准备好从缓存服务器获取数据。
c++ - C++ 中的静态类数据与匿名命名空间
我偶尔会有带有私有静态数据成员的类。我目前正在争论是否应该将这些替换为实现文件中未命名命名空间中的静态变量。除了不能在内联方法中使用这些变量之外,还有其他缺点吗?我看到的优点是对班级的用户完全隐藏了它们。
asp.net - 什么更好:静态变量 VS Asp.NET 应用程序会话?
假设您想在 ASP.NET Web 应用程序中的所有线程/会话之间共享一些资源,例如类或变量。什么是更好的?
1) 具有对该静态变量的线程安全访问器的静态变量?
2) 还是 ASP.NET 应用程序会话变量?