Python 2.3 многопроцессорная - PullRequest
2 голосов
/ 06 июня 2011

Есть ли какой-нибудь модуль многопроцессорного типа для Python 2.3?Я застрял, используя 2.3 для программ, с которыми я взаимодействую, и хотел бы иметь возможность настроить многопроцессорность, поскольку задачи, которые я выполняю, используют только один процессор и действительно неэффективны.

Я бы хотел, чтобы каждый поток / процесс обрабатывал свои собственные глобальные переменные, и каждый поток / процесс не должен делить какие-либо переменные с каким-либо другим потоком / процессом.По сути, я просто хотел бы иметь очередь файлов, которые нужно запускать через функцию, и каждый запуск был бы совершенно новым потоком.

Я пытался использовать thread.start_new_thread, но он просто превратился в беспорядок смои глобальные переменные.

Мне только что пришла в голову мысль, могу ли я сделать os.popen('python C:\function_dir\function.py vars...') из каждого нового потока?Звучит довольно некрасиво, но я не понимаю, почему это не сработает.Основная программа не продолжится, пока os.popen «нить» не будет завершена правильно?

Какие-либо мысли или модули, которые я могу пропустить?

Ответы [ 2 ]

0 голосов
/ 10 декабря 2012

Использование Threading .Вам просто нужно создать класс на основе Thread :

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 :

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 голосов
/ 03 августа 2012

Ничего такого, что я нигде не нашел, с тех пор я перешел на python 2.5

...