python如何使用多线程_python多线程应用中的详细介绍
python多線程在應用的時候有不少的事情需要重點的注意。其實只要掌握這些相關的技術段就能保證這個應用的完整。下面我們來看看具體是需要如何進行操作。
今天看了近一天關于多線程的應用中,如何安全調用python多線程方面的資料,開始的時候看的簡直頭大如斗,被python語言的全局鎖(Global Interpreter Lock)、線程狀態(Thread State )等都有點繞暈了,后來經過各方面文章和幫助文檔的相互參考,發現對于2.4/2.5版本,提供了PyGILState_Ensure, PyGILState_Release,哎,這下可方便大發了。
一、首先定義一個封裝類,主要是保證PyGILState_Ensure, PyGILState_Release配對使用,而且這個類是可以嵌套使用的。
#include
class PyThreadStateLock
{
public:
PyThreadStateLock(void)
{
state=PyGILState_Ensure( );
}
~PyThreadStateLock(void)
{
PyGILState_Release( state );
}
private:
PyGILState_STATE state;
};
二、在主線程中,這樣處理
// 初始化
Py_Initialize();
// 初始化線程支持
PyEval_InitThreads();
// 啟動子線程前執行,為了釋放PyEval_InitThreads獲得的全局鎖,否則子線程可能無法獲取到全局鎖。
PyEval_ReleaseThread(PyThreadState_Get());
// 其他的處理,如啟動子線程等
......
// 保證子線程調用都結束后
PyGILState_Ensure();
Py_Finalize();
// 之后不能再調用任何python的API
以上就是對python多線程的詳細介紹。希望對大家有所幫助。
【編輯推薦】
【責任編輯:張浩 TEL:(010)68476606】
點贊 0
總結
以上是生活随笔為你收集整理的python如何使用多线程_python多线程应用中的详细介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse让实现类也添加上接口的注释
- 下一篇: 卧式储罐液位体积计算公式excel_EL