Решил оставить блог личной территорией и выглал эту статью. Теперь она обитает тут: многопоточный генератор python.
19.06.09
Подписаться на:
Комментарии к сообщению (Atom)
Решил оставить блог личной территорией и выглал эту статью. Теперь она обитает тут: многопоточный генератор python.
3 коммент.:
Пардон, у меня оффтопик :) Можно ли в эклипсе (а точнее, в Zend Studio, ну так это ж почти одно и то же) замутить такой же [черный] стиль подсветки кода как у вас в бложике?
На таком фоне код выглядит ужасно(по крайней мере у меня). А вообще это скорее для тех, кто плохо разбирается в английском, ибо схожих примеров хватает(=
Оффтоп:
воспользуйтесь Черновиками и сделайте что бы окно комментариев содержало текст сообщения и было в одном со всем блогом стиле(настройки, комментарии, Размещение формы для ввода комментариев: Вложенное ниже сообщение)
для обмеження кількості потоків використовують семафори (threading.Semaphore) а не :
# добавляем недостающие потоки
while len(pool) < thread_limit:
th = Th(callback, queue, ret_queue)
th.setDaemon(True)
th.start()
pool.append(th)
Example: http://docs.python.org/library/threading.html#threading.Semaphore . а для того щоб дочекатись завершення потоку вартую писати шось типу: for t in pool: t.join()
замість
# ожидаем завершения потоков
while True:
if threading.activeCount() == 1:
break
time.sleep(sleep)
Ну і це код поганий бо None може бути черед значень:
# отключаем потоки
for th in pool:
queue.put(None)
і взагалі для чого створювати необмежену кількість потоків:
while len(pool) < thread_limit:
th = Th(...)
якщо можна відразу створити thread_limit потоків і не відключати їх доти поки будуть якісь завдання. а коли черга завдань закінчиться - можна написати шось типу такого:
for t in pool: t.kill = True
і в Th.run(): if self.kill: return
Взагалі є багато варіантів.
Отправить комментарий