我正在尝试使用标准python文档中的代码片段来学习如何使用多处理模块.代码将粘贴在此消息的末尾.我在Ubuntu 11.04上使用Python 2.7.1在四核机器上(根据系统监视器,由于超线程而给我八个核心)
问题:尽管已启动多个进程,但所有工作负载似乎只安排在一个核心上,接近100%的利用率.有时,所有工作负载都迁移到另一个核心,但工作负载从不在它们之间分配.
任何想法为什么会这样?
最好的祝福,
保罗
#
# Simple example which uses a pool of workers to carry out some tasks.
#
# Notice that the results will probably not come out of the output
# queue in the same in the same order as the corresponding tasks were
# put on the input queue. If it is important to get the results back
# in the original order then consider using `Pool.map()` or
# `Pool.imap()` (which …Run Code Online (Sandbox Code Playgroud) 我正在开发一个项目,我们正在使用带有CPP-API的Basler Pylon相机.除了图片拍摄之外,我们的大多数其他代码都是用Python编写的,因此我们使用swig从CPP中包装take_image()函数.
这些是我们对swig和g ++的调用:
swig -python -c++ frompytocpp.i
g++ -c -fpic cppcamera.cpp frompytocpp_wrap.cxx
-I/opt/pylon/genicam/library/CPP/include -I/opt/pylon/include -DUSE_GIGE
-I/usr/include/python2.6
g++ -shared cppcamera.o frompytocpp_wrap.o -o _frompytocpp.so
-L/opt/pylon/lib64 -L/opt/pylon/lib -L/opt/pylon/genicam/bin/Linux64_x64
-L/opt/pylon/genicam/bin/Linux64_x64/GenApi/Generic -Wl,-E -lpylonbase
-lpylonutility
Run Code Online (Sandbox Code Playgroud)
它编译得很好,但在运行时尝试创建一个摄像头对象时,抛出的异常似乎与未解析的符号有关.根据相机API手册,标志-Wl,-E是关键的"否则链接器将不会在运行时正确地知道和匹配pylon符号".我查找了g ++的man-page,意识到-Wl用于将选项传递给链接器,但无法确定传递给-Wl时-E选项会做什么.任何人?
运行时问题仅在从python调用图片拍摄功能时才会显现.所以只是标准编译的cppcamera.cpp合并-Wl,-E工作正常,但是当我们创建python中的包装器使用的共享库时,某些东西不正确/缺失.关于我们的g ++中可能缺少什么的任何建议 - 调用?