首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python 2.3多处理

Python 2.3多处理
EN

Stack Overflow用户
提问于 2011-06-07 01:43:04
回答 2查看 411关注 0票数 2

Python2.3有没有多处理类型的模块?我坚持使用2.3作为我与之接口的程序,并希望能够设置一些多处理,因为我做的任务只使用一个CPU,效率真的很低。

我希望每个线程/进程处理自己的全局变量,并且每个线程/进程不应该与任何其他线程/进程共享任何变量。基本上,我只想有一个需要通过函数运行的文件队列,每次运行都是一个全新的线程。

我试过使用thread.start_new_thread,但它把我的全局变量弄得一团糟。

我突然想到,我可以从每个新线程执行一个os.popen('python C:\function_dir\function.py vars...')吗?听起来相当难看,但我不明白为什么它不能工作。在os.popen“线程”正确结束之前,主程序不会继续运行?

有什么我可能忽略的想法或模块吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-03 05:50:07

我在任何地方都没有找到,后来我转向了python2.5

票数 0
EN

Stack Overflow用户

发布于 2012-12-10 23:34:22

使用线程。您只需基于线程构建一个类

代码语言:javascript
代码运行次数:0
运行
复制
import threading

class myThread(threading.Thread):
    #
    # Constructor.
    #
    def __init__(self, ...):
        #
        # Call threading constructor.
        #
        threading.Thread.__init__(self)
        #
        # Your constructor code.
        #
        ...
    #
    # The code executed when starting the thread.
    #
    def run(self):
        ...
#
# Create an instance and start the thread.
#
myThread(...).start()

确保您的所有变量都保持在本地。如果需要访问全局变量,请使用 global 语句:

代码语言:javascript
代码运行次数:0
运行
复制
counter = 0

class myThread(threading.Thread):
    ...
    def run(self):
        global counter
        ...
        counter = 17
...

对于锁定等,也可以查看Python文档:http://docs.python.org/release/2.3.5/lib/module-threading.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6255935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档