Найти - Пользователи
Полная версия: запуск нескольких циклов одновременно
Начало » Mobile Python » запуск нескольких циклов одновременно
1
ReaL_HarDCorE
Помогите пожалуйста, меня давно мучает вопрос как запустить несколько циклов одновременно. У меня не получается. Пока не закончится первый цикл, второй не начинает работать. И как сделать так, чтобы цикл работал на протяжении всей работы программы, но при этом могли выполняться другие функции программы. Мне кажется, что это до безобразия просто, но я не знаю как. Вот, например, как запустить эти циклы одновременно:
x,y,z=0,0,0
while 1: x+=1
while 1: y+=1
while 1: z+=1
Заранее благодарен!
doza_and
1 непонятно почему в Mobile, вопрос скорее для начинающих.
2 надо разобраться что вы понимаете под одновременно.
Если коротко - то вы можете хотеть логически их одновременно запустить или физически (те на разных процессорах или ядрах или вообще разных машинах).
кроме того можно запустить внутри одного скрипта (типа как в редакторе несколько документов открыть)
или можно несколько экземпляров питона пускануть. (типа запустить неколько редакторов)
самое простое:
while 1:
x+=1
y+=1
z+=1
почему это не устраивает?
Несколько тредов:
import threading

x,y,z=0,0,0

def incx():
global x
for i in range(20):
x+=1
print "incx"
def incy():
global y
for i in range(20):
y+=1
print "incy"
def incz():
global z
for i in range(20):
z+=1
print "incz"

tx=threading.Thread(target=incx)
ty=threading.Thread(target=incy)
tz=threading.Thread(target=incz)
tx.start();ty.start();tz.start()
tx.join();ty.join();tz.join()
Понимаю - не фонтан. Кроме того безсмысленно - GIL будет мешать
Процессами из документации:
from multiprocessing import Process

def f(name):
print 'hello', name

if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
ну вобщем также. Только тут запустится несколько интерпретаторов и GIL не может мешать.
doza_and
ReaL_HarDCorE сначала написал
doza_and
скорее для начинающих
. Потом посмотрел что постите. Приношу извинения, тут вы меня скорее чему научите :). Но все равно не понятно в чем была проблема. КПК у меня есть с питоном на борту, но почти не пишу для нее…
Virtuos86
На PyS60 1.4.5 вариант с threading не пойдёт - только если половину стандартной библиотеки перенести на телефон (но тогда можно поцеловать оперативную память на прощание, у ТС же N73 там с ней тем более не богато) -, про multiprocessing вообще можно не заикаться. Так что только thread.start_new_thread.
На PyS60 2.* threading уже вариант.
А что есть PowerCleanUp? Очередная “чистилка” системного мусора? Хотите распараллелить сбор-удаление мусора? Не знаю, не знаю. В симбо-питоне с потоками ещё хуже чем в CPython.
ReaL_HarDCorE
Virtuos86
На PyS60 1.4.5 вариант с threading не пойдёт - только если половину стандартной библиотеки перенести на телефон (но тогда можно поцеловать оперативную память на прощание, у ТС же N73 там с ней тем более не богато) -, про multiprocessing вообще можно не заикаться. Так что только thread.start_new_thread.
На PyS60 2.* threading уже вариант.
А что есть PowerCleanUp? Очередная “чистилка” системного мусора? Хотите распараллелить сбор-удаление мусора? Не знаю, не знаю. В симбо-питоне с потоками ещё хуже чем в CPython.
PowerCleanUp это мой чистильщик, над которым я уже не работаю))))
doza_and
:) не разжигайте мое любопытство, поясните всеже. Вам реально треды нужны или достаточно оргранизации сопросцессов?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB