Форум сайта python.su
Помогите пожалуйста, меня давно мучает вопрос как запустить несколько циклов одновременно. У меня не получается. Пока не закончится первый цикл, второй не начинает работать. И как сделать так, чтобы цикл работал на протяжении всей работы программы, но при этом могли выполняться другие функции программы. Мне кажется, что это до безобразия просто, но я не знаю как. Вот, например, как запустить эти циклы одновременно:
x,y,z=0,0,0
while 1: x+=1
while 1: y+=1
while 1: z+=1
Офлайн
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()
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
Офлайн
ReaL_HarDCorE сначала написал
doza_and. Потом посмотрел что постите. Приношу извинения, тут вы меня скорее чему научите :). Но все равно не понятно в чем была проблема. КПК у меня есть с питоном на борту, но почти не пишу для нее…
скорее для начинающих
Офлайн
На PyS60 1.4.5 вариант с threading не пойдёт - только если половину стандартной библиотеки перенести на телефон (но тогда можно поцеловать оперативную память на прощание, у ТС же N73 там с ней тем более не богато) -, про multiprocessing вообще можно не заикаться. Так что только thread.start_new_thread.
На PyS60 2.* threading уже вариант.
А что есть PowerCleanUp? Очередная “чистилка” системного мусора? Хотите распараллелить сбор-удаление мусора? Не знаю, не знаю. В симбо-питоне с потоками ещё хуже чем в CPython.
Офлайн
Virtuos86PowerCleanUp это мой чистильщик, над которым я уже не работаю))))
На PyS60 1.4.5 вариант с threading не пойдёт - только если половину стандартной библиотеки перенести на телефон (но тогда можно поцеловать оперативную память на прощание, у ТС же N73 там с ней тем более не богато) -, про multiprocessing вообще можно не заикаться. Так что только thread.start_new_thread.
На PyS60 2.* threading уже вариант.
А что есть PowerCleanUp? Очередная “чистилка” системного мусора? Хотите распараллелить сбор-удаление мусора? Не знаю, не знаю. В симбо-питоне с потоками ещё хуже чем в CPython.
Офлайн
:) не разжигайте мое любопытство, поясните всеже. Вам реально треды нужны или достаточно оргранизации сопросцессов?
Офлайн