通过cppcms了解应用程序生存期

时间:2019-02-15 10:15:27

标签: multithreading cppcms

wikipage of cppcms指出(强调我的意思):

  

同步应用程序位于池中。它们是由特殊的   cppcms :: applications_pool ::工厂对象已安装到   applications_pool对象。

     

这些对象是长期存在的对象,一旦创建它们   通常会缓存在池中以备将来重用。

     

根据传入请求,从池中获取应用程序,或者   特殊的cppcms :: http :: context对象是   在所有请求处理期间分配给应用程序的

     

此请求在线程池中通过调用   application :: main()虚拟函数,实际处理   请求。

     

请求完成后,将取消分配此上下文,并且   应用程序返回到池中以备将来重用。

     

因此,当您编写自己的应用程序时,您可能会认为   构造函数不经常被调用。您还应该假设   他们将“存活”很长时间。

     

最好随身缓存一些常规的非可变信息   这样的对象。

同时触发2个请求时(或延迟时间小于完成时间),会生成2个应用程序实例吗?

文本说,该应用程序是从池中提取的,并在请求完成后返回。 page about thread safety提到

  

除非另外明确说明,否则所有类都不是线程安全的,无法同时从多个线程访问

并且没有提到cppcms::application类。

这是否意味着:

  1. 我不确定所有请求都将由同一个应用程序对象处理吗?
  2. 我无法为应用程序对象创建静态吸气剂,因为不同的工作线程可以使用不同的应用程序对象执行第二个请求,从而启用数据竞争吗?

0 个答案:

没有答案