Python主线程如何进行相关应用

开发 后端
Python主线程在实际的使用中还是有不少的问题存在。下面我们就详细的看看如何进行相关的操作。希望大家有所收获。

Python主线程是我们经常使用到的一个变成方式。但是要如何才能更好的使用这中编程语言呢?下面我们就详细的来看看这篇文章。在Python主线程,或者子线程中,调用Python本身函数的都采用如下处理

 

  1. {  
  2. class PyThreadStateLock PyThreadLock;  
  3. // 调用python的API函数处理  
  4. ......  

呵呵,看这样是否非常简单了。

另外还有两个和全局锁有关的宏,Py_BEGIN_ALLOW_THREADS 和 Py_END_ALLOW_THREADS。这两个宏是为了在较长时间的C函数调用前,临时释放全局锁,完成后重新获取全局锁,以避免阻塞其他python的线程继续运行。这两个宏可以这样调用

 

  1. {  
  2. class PyThreadStateLock PyThreadLock;  
  3. // 调用python的API函数处理  
  4. ......  
  5. Py_BEGIN_ALLOW_THREADS  
  6. // 调用需要长时间的C函数  
  7. ......  
  8. Py_END_ALLOW_THREADS  
  9. // 调用python的API函数处理  
  10. ......  

 

可能的错误及解决

a. 在vs 200x 下 debug 模式出现链接问题

  1. extmodule.obj : error LNK2019: unresolved external 
    symbol __imp___Py_Dealloc referenced in function _
    PySwigObject_format  
  2. extmodule.obj : error LNK2019: unresolved external 
    symbol __imp___Py_NegativeRefcount referenced in function
     _PySwigObject_format  
  3. extmodule.obj : error LNK2001: unresolved external symbol
     __imp___Py_RefTotal  
  4. extmodule.obj : error LNK2019: unresolved external symbol
     __imp___PyObject_DebugFree referenced in function 
    _PySwigObject_dealloc  
  5. extmodule.obj : error LNK2019: unresolved external symbol __imp
    ___PyObject_DebugMalloc referenced in function _PySwigObject_New  
  6. extmodule.obj : error LNK2019: unresolved external symbol __imp
    __Py_InitModule4TraceRefs referenced in function _init_extmodule 

主要是因为 Py_DEBUG/Py_TRACE_REFS 引起, 修改 Python\include 下的 pyconfig.h, object.h 两个文件就行了。以上就是对Python主线程的相信介绍。

【编辑推荐】

  1. 讲述Python序列如何进行解包教程
  2. Python函数需要不断的学习和完善
  3. Python源代码构架的三大主要结构
  4. python字符串处理以灵活为最大优点
  5. 用Python异常处理来显示错误信息
责任编辑:张浩 来源: 互联网
相关推荐

2010-02-01 17:33:24

Python主线程

2010-02-02 16:47:12

Python主线程

2010-03-12 14:51:47

Python布尔表达式

2010-03-05 09:40:08

Python递归

2023-09-03 23:49:35

2020-07-08 15:10:11

Python数据分析代码

2009-12-29 13:31:55

ADO连接ACCESS

2011-09-15 14:57:49

ubunturootuser用户

2010-02-01 10:21:36

Python编码转换

2010-02-22 16:05:40

Python配置

2024-07-08 08:38:37

Python游戏开发

2010-02-03 13:55:51

Python 代码

2010-02-26 15:37:11

Python主线程

2019-10-11 08:46:45

Python数据Numpy

2010-02-01 14:48:43

2010-03-15 15:11:50

Python列表

2010-03-11 17:38:20

Python中文

2010-02-01 18:20:17

Python 多重继承

2010-03-16 10:32:36

Java线程拨号器

2009-12-24 16:09:42

ADO.NET数据源
点赞
收藏

51CTO技术栈公众号