问题标签 [pool]

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 回答
1748 浏览

c++ - 在课堂上使用 boost 内存池

我试图在我的班级中声明一个内存池。

但是编译器会显示一些基本错误,例如在 ';' 之前缺少 ')'

或语法错误:'sizeof'

如果我将池用作局部变量,它工作得很好,但我真的想让它与班级一起生活。

我的使用有什么问题?

这是类,MAX_OBJ 是一个常量

0 投票
1 回答
724 浏览

c++ - 如何使用带有非 const 引用的 boost::object_pool<>::construct 作为 ctor 参数?

是否可以将 boost::object_pool<>::construct 与非 const 引用一起使用?

以下代码段无法编译(VS2010):

VS2010 抱怨无法将 bar & 转换为 const bar &。查看 boost::object_pool<>::construct 原因很清楚:

不过,我不能使 ctor 参数为 const 。有没有一个技巧可以让 boost::object_pool<> 与我的 foo 类一起工作?

0 投票
2 回答
3390 浏览

wcf - 回收 ApplicationPool 后,如何“预热”(填充缓存等)托管在 IIS 中的 WCF 服务?

我们在 IIS 6 中托管 WCF 服务。ServiceHostFactory 在出现对服务的第一个请求时创建 ServiceHost。在 ServiceHost 的 OnOpening() 方法中,我们将一些数据加载到实现为静态属性的缓存中。

由于加载数据大约需要 1 分钟,我们不希望“当天的第一个用户”等待缓存被填充。问题是 ServiceHost 和缓存会随着 ApplicationPool 的每次回收而被杀死。是否有可能检测到回收并重新填充缓存?还是有其他最佳实践?我不敢相信我们是唯一有这个问题的人......

提前致谢!

0 投票
1 回答
1061 浏览

apache - apache 线程的 apr_pool_destroy() 安全吗?

我的应用程序是用 apache 构建的并在 Windows 上运行。我正在使用 createThread() 创建一个线程,然后为每个线程执行以下操作:

ap_destroy_sub_request 依次调用 apr_pool_destroy() 函数。

ap_run_sub_req() 为池分配内存,ap_destroy_sub_req() 释放分配的内存。

如果 apr_pool_destroy() 在线程内被调用,则分配的内存不会被释放,因为我的应用程序存在内存泄漏。我在任何 apache 文档中都找不到任何提及 apr_pool_destroy() 是非线程安全函数的内容。

这个问题怎么解决??如何释放线程内分配的池?
谢谢

0 投票
1 回答
1438 浏览

python - python线程池问题(等等)

我用线程池编写了简单的网站爬虫。问题是:然后爬虫覆盖整个站点,它必须完成,但实际上它最终会等待一些东西,并且脚本没有完成,为什么会发生这种情况?

0 投票
2 回答
1139 浏览

python - 批评这个python代码(带有线程池的爬虫)

这个python代码有多好?需要批评)这段代码有错误,有时脚本会打印“ALL WAIT - CAN FINISH!” 并冻结(没有更多的动作发生..),但我找不到发生这种情况的原因?

带有线程池的站点爬虫:

感谢您的帮助!我做了新的实现:你能对这段代码#2 说些什么?===================================TRY #2============= ===========================

0 投票
3 回答
930 浏览

java - 如果存在强引用,线程安全对象池保证返回现有对象?

我正在尝试扩展 Clojure 语言以将 ACI 保证的 refs 扩展为 ACID 保证的 drefs(持久参考)。API 是简单的调用(dref key value),其中key是要在底层数据存储中使用的键的字符串(在我当前的实现中是 BDB JE),并且value是应该初始化 dref 的对象。如果key数据库中已经存在,则使用存储的值。

可以使用相同的密钥创建多个 dref,并且它们需要同步,即,如果具有密钥“A”的一个 dref 参与了使用 写入或读取它的事务,则(ensure)具有密钥“A”的所有其他 dref 必须是事务性的同步:必须使用读锁和写锁来对涉及这些 dref 的事务进行排序。从更大的意义上说,尽管内存中可能有多个具有相同键的 dref,但所有具有该键的 dref 都是一个逻辑对象。

出于显而易见的原因,简单地确保这个单个逻辑 dref 是使用单个具体的内存中 dref 实现的要容易得多。这样就没有什么要同步的了。我该怎么做呢?

显而易见的答案是使用 key 上的对象。如果池存在, Clojure 将调用静态getInstance(key,value)方法从池中检索,如果不存在,则创建它并填充池。这种方法的问题是没有简单的方法让 Clojure 在完成时释放对象。内存泄漏城市。我必须确保不会收集任何对其有强引用的对象,并且它们存在于池中。如果池丢失对仍在使用的逻辑 dref 的引用,那将是灾难性的,因为另一个进程可以使用相同的密钥创建一个新的 dref,并且对于具有相同密钥的另一个 dref,它在事务上是不安全的。

所以我需要WeakHashMap使用非强引用的一些版本或一些东西(我更喜欢SoftReferences 让 GC 更不情愿)。所以:

  1. 如果我使用 a HashMap<String,SoftReference<DRef>>,如果收集到条目(SoftReference)的值,如何确保映射将逐出条目?某种守护线程?
  2. 如何使 GC 的池线程安全?还是我不必担心,因为 GC 在SoftReference级别上运行,而我的守护线程将是在Map级别上运行的那个?
  3. 在相关说明中,如何确保守护线程正在运行?有没有什么方法可以停止而不抛出异常,如果没有被捕获,整个 JVM 会崩溃?如果是这样,我如何监控并在需要时启动一个新的?
0 投票
1 回答
598 浏览

c++ - 如何在 C++ 中为抽象基类创建池分配器?

遇到了 glibc 的 malloc() 的错误:http: //sourceware.org/bugzilla/show_bug.cgi ?id=4349并且我现在正在考虑一个解决方法,直到更新到更高版本的 glibc 是为小有许多实例来来去去的对象。

小对象都派生自一个抽象基类。我想找到一个好的模式(使用 boost 可以)在基类中自动提供池分配,并让它在许多派生类中正常工作。

这可以通过在抽象基类中定义运算符 new() 来完成吗?它如何为每个可能具有不同实际内存大小的派生类组织不同的池?

0 投票
1 回答
18034 浏览

python - 我可以在 Pool.imap 调用的函数中使用多处理队列吗?

我正在使用 python 2.7,并尝试在自己的进程中运行一些 CPU 繁重的任务。我希望能够将消息发送回父进程,以使其了解进程的当前状态。多处理队列似乎很适合这个,但我不知道如何让它工作。

所以,这是我的基本工作示例减去队列的使用。

我尝试以多种方式传递队列,但他们收到错误消息“RuntimeError:队列对象只能通过继承在进程之间共享”。这是我根据我找到的早期答案尝试的方法之一。(我在尝试使用 Pool.map_async 和 Pool.imap 时遇到了同样的问题)

最后,0 适应度方法(使其成为全局)不会生成任何消息,它只是锁定。

我知道它可能会直接与 multiprocessing.Process 一起使用,并且还有其他库可以实现这一点,但我不想放弃非常适合的标准库函数,直到我确定这不仅仅是我的不足知识使我无法利用它们。

谢谢。

0 投票
2 回答
1303 浏览

java - 带有工作池的 HTTP 请求队列

我正在用 Java 开发应用程序,它通过 HTTP 协议连接到不同的 Web 服务器(向它们发送请求并等待响应)。我想将模式与队列和工作池一起使用,所以我想知道 Java 中是否有任何框架为此提供方法?