⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class_plugin_thread_pool_1_1_thread_pool.html

📁 用vc++写的一个简单的线程池的代码
💻 HTML
📖 第 1 页 / 共 3 页
字号:
</div><div class="memdoc"><p>This method is called by a thread when it is free to procees a request. It deques the request -fifo <p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00164">164</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00247">PluginThreadPool::ThreadPool&lt; T &gt;::m_RequestQueue</a>.</div></div><p><a class="anchor" name="27605e5cc423913a7a89984194b66f53"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::HandleRequest" ref="27605e5cc423913a7a89984194b66f53" args="()" --><div class="memitem"><div class="memproto"><div class="memtemplate">template&lt;typename T&gt; </div>      <table class="memname">        <tr>          <td class="memname">void <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>&lt; T &gt;::HandleRequest           </td>          <td>(</td>          <td class="paramname">          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"><code> [inline]</code></td>        </tr>      </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00119">119</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00239">PluginThreadPool::ThreadPool&lt; T &gt;::root</a>.<p>Referenced by <a class="el" href="_thread_pool_8h-source.html#l00181">PluginThreadPool::ThreadPool&lt; T &gt;::ProcessList()</a>.</div></div><p><a class="anchor" name="725fd7df525c33165c8823a231e83c3f"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::IncrementThreadCount" ref="725fd7df525c33165c8823a231e83c3f" args="()" --><div class="memitem"><div class="memproto"><div class="memtemplate">template&lt;typename T&gt; </div>      <table class="memname">        <tr>          <td class="memname">void <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>&lt; T &gt;::IncrementThreadCount           </td>          <td>(</td>          <td class="paramname">          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"><code> [inline]</code></td>        </tr>      </table></div><div class="memdoc"><p>This method increments the thread count of the thread pool in a thread safe manner <p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00219">219</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00244">PluginThreadPool::ThreadPool&lt; T &gt;::m_threadCount</a>.</div></div><p><a class="anchor" name="1d1e3dff773360670050c11735cf284f"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::operator=" ref="1d1e3dff773360670050c11735cf284f" args="(const ThreadPool &amp;)" --><div class="memitem"><div class="memproto"><div class="memtemplate">template&lt;typename T&gt; </div>      <table class="memname">        <tr>          <td class="memname"><a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">ThreadPool</a>&amp; <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>&lt; T &gt;::operator=           </td>          <td>(</td>          <td class="paramtype">const <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">ThreadPool</a>&lt; T &gt; &amp;&nbsp;</td>          <td class="paramname">          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"><code> [inline, private]</code></td>        </tr>      </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00048">48</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.</div></div><p><a class="anchor" name="25d1455518239dc2c722bd93c9fdb80a"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::ProcessList" ref="25d1455518239dc2c722bd93c9fdb80a" args="()" --><div class="memitem"><div class="memproto"><div class="memtemplate">template&lt;typename T&gt; </div>      <table class="memname">        <tr>          <td class="memname">void <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>&lt; T &gt;::ProcessList           </td>          <td>(</td>          <td class="paramname">          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"><code> [inline]</code></td>        </tr>      </table></div><div class="memdoc"><p>This waits on a event that is set when a new request is pushed to the queue to be processes <p>or a maximum two seconds<p>the queue is a resource under contention<p>If empty wait for the event to occur<p>Call to the <a class="el" href="class_plugin_thread_pool_1_1_thread_chain.html">ThreadChain</a> method to handle a requesr<p>printf("m_RequestQueue is NOT Empty\n");<p>To avoid busy-looping <p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00181">181</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00235">PluginThreadPool::ThreadPool&lt; T &gt;::critsec</a>, <a class="el" href="_thread_pool_8h-source.html#l00119">PluginThreadPool::ThreadPool&lt; T &gt;::HandleRequest()</a>, <a class="el" href="_thread_pool_8h-source.html#l00245">PluginThreadPool::ThreadPool&lt; T &gt;::m_pending</a>, <a class="el" href="_thread_pool_8h-source.html#l00247">PluginThreadPool::ThreadPool&lt; T &gt;::m_RequestQueue</a>, and <a class="el" href="_thread_pool_8h-source.html#l00032">PluginThreadPool::MAX_WAITTIMEOUT</a>.<p>Referenced by <a class="el" href="_thread_pool_8h-source.html#l00172">PluginThreadPool::ThreadPool&lt; T &gt;::ProcessListProxy()</a>.</div></div><p><a class="anchor" name="f048fb1c01a66c230bfd09485ca47861"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::ProcessListProxy" ref="f048fb1c01a66c230bfd09485ca47861" args="(LPVOID param)" --><div class="memitem"><div class="memproto"><div class="memtemplate">template&lt;typename T&gt; </div>      <table class="memname">        <tr>          <td class="memname">static UINT <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>&lt; T &gt;::ProcessListProxy           </td>          <td>(</td>          <td class="paramtype">LPVOID&nbsp;</td>          <td class="paramname"> <em>param</em>          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"><code> [inline, static]</code></td>        </tr>      </table></div><div class="memdoc"><p>This is the proxy thread method that calls the real ProcessList method. <p><p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00172">172</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00181">PluginThreadPool::ThreadPool&lt; T &gt;::ProcessList()</a>.<p>Referenced by <a class="el" href="_thread_pool_8h-source.html#l00052">PluginThreadPool::ThreadPool&lt; T &gt;::ThreadPool()</a>.</div></div><p><a class="anchor" name="8dfcd872c27739892faf35f145eb2ce6"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::QueueRequest" ref="8dfcd872c27739892faf35f145eb2ce6" args="(Command&lt; T &gt; *cmdPtr)" --><div class="memitem"><div class="memproto"><div class="memtemplate">template&lt;typename T&gt; </div>      <table class="memname">        <tr>          <td class="memname">void <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>&lt; T &gt;::QueueRequest           </td>          <td>(</td>          <td class="paramtype"><a class="el" href="class_plugin_thread_pool_1_1_command.html">Command</a>&lt; T &gt; *&nbsp;</td>          <td class="paramname"> <em>cmdPtr</em>          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"><code> [inline]</code></td>        </tr>      </table></div><div class="memdoc"><p>New Method used to Queue the request in a list. This can be called from multiple threads <p>If this is a valid pointer<p>printf("Q Size=%d\n",m_RequestQueue.size());<p>signal the ProcessList to process the <p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00141">141</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00245">PluginThreadPool::ThreadPool&lt; T &gt;::m_pending</a>, and <a class="el" href="_thread_pool_8h-source.html#l00247">PluginThreadPool::ThreadPool&lt; T &gt;::m_RequestQueue</a>.</div></div><p><a class="anchor" name="72558bda6253316968ced2412643281c"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::ThreadChecker" ref="72558bda6253316968ced2412643281c" args="()" --><div class="memitem"><div class="memproto"><div class="memtemplate">template&lt;typename T&gt; </div>      <table class="memname">        <tr>          <td class="memname">bool <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>&lt; T &gt;::ThreadChecker           </td>          <td>(</td>          <td class="paramname">          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"><code> [inline]</code></td>        </tr>      </table></div><div class="memdoc"><p>This method initates the root to propogates the check of each <a class="el" href="class_plugin_thread_pool_1_1_thread_chain.html">ThreadChain</a> object to see if it is in a hung state <p>minimum time <p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00106">106</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00239">PluginThreadPool::ThreadPool&lt; T &gt;::root</a>, and <a class="el" href="_thread_pool_8h-source.html#l00031">PluginThreadPool::THREAD_CHECKTIME</a>.<p>Referenced by <a class="el" href="_thread_pool_8h-source.html#l00097">PluginThreadPool::ThreadPool&lt; T &gt;::ThreadCheckerProxy()</a>.</div></div><p><a class="anchor" name="a9a2180d79c1881d964a567703b168ff"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::ThreadCheckerProxy" ref="a9a2180d79c1881d964a567703b168ff" args="(LPVOID param)" --><div class="memitem"><div class="memproto"><div class="memtemplate">template&lt;typename T&gt; </div>      <table class="memname">        <tr>          <td class="memname">static UINT <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>&lt; T &gt;::ThreadCheckerProxy           </td>          <td>(</td>          <td class="paramtype">LPVOID&nbsp;</td>          <td class="paramname"> <em>param</em>          </td>          <td>&nbsp;)&nbsp;</td>          <td width="100%"><code> [inline, static]</code></td>        </tr>      </table></div><div class="memdoc">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -