
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.169] |
![]() |
|
![]() |
Сообщ.
#1
,
|
|
![]() ![]() import threading class clever_calc(threading.Thread): def __init__(self, fi): threading.Thread.__init__(self) self.event = threading.Event() self.fi = open(fi, 'w') def __enter__(self): self.start() def __exit__(self, ex_type, ex_value, ex_traceback): self.event.set() self.join() def run(self): i = 1 while not(self.event.isSet()): i += 1 for j in xrange(2,i): if i % j == 0: break else: #кстати, это образчик применения (ELSE:) в (FOR/WHILE:) print >> self.fi, i self.fi.close() print self.fi #запускаем поток для неспешного поиска простых чисел и с записью их в файло primes.txt: cc = clever_calc('E:/primes.txt') cc.start() #### здесь пашем как пчелки по своим делам #### #решаем что на сегодня простых чисел хватит и убиваем сс: cc.event.set() print cc --------два принта отпечатают: <closed file 'E:/primes.txt', mode 'w' at 0x00BA7C38> <clever_calc(Thread-1, stopped)> |