Сегодня 20 декабря, суббота ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7281
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Лайт Лента
Лайт Лента
Голосов: 1
Адрес блога: http://ligh.te.ua
Добавлен: 2013-04-10 14:14:43
 

Программирование » Многопоточность в Python

2013-05-27 18:22:05 (читать в оригинале)

Модуль thread позволяет создавать несколько потоков и управлять ими. Предоставляет средства низкого уровня для работы с несколькими потоками, совместно использующими глобальные данные. Для синхронизации модуль предо- ставляет простые средства блокировки. # -*- coding: utf-8 -*- # http://docs.python.org/library/thread.html import thread import urllib import time # Время начала работы программы t1 = time.time() # Список сайтов для чтения list_url = ('http://www.kremlin.ru', 'http://www.gosuslugi.ru', 'http://www.python.org', 'http://www.djangoproject.org', 'http://www.yandex.ru', 'http://www.google.ru', ) # Создадим функцию, которая будет выполняться одновременно разными потоками def read_site(number, url, lock): t1 = time.time() r = urllib.urlopen(url) t2 = time.time() print "#%s, site: %s, time: %.2f" % (number, url, (t2-t1)) # Освобождаем объект lock.release() # Список объектов блокировки потоков lock_list = [] for number, url in enumerate(list_url): # Создаем новый объект блокировки. Изначально блокировка в состоянии False. lock = thread.allocate_lock() # Блокируем объект lock.acquire() # Запоминаем блокировку lock_list.append(lock) # Запускаем новый поток и выполняем в нем функцию thread.start_new_thread(read_site, (number, url, lock)) # Ожидаем завершения всех потоков while(any([l.locked() for l in lock_list])): time.sleep(2) # Время завершения работы программы t2 = time.time() print 'Execution of all threads is complete, time: %.2f' % (t2-t1) """ #0, site: http://www.kremlin.ru, time: 0.09 #4, site: http://www.yandex.ru, time: 0.15 #5, site: http://www.google.ru, time: 0.17 #2, site: http://www.python.org, time: 0.19 #1, site: http://www.gosuslugi.ru, time: 0.52 #3, site: http://www.djangoproject.org, time: 1.63 Execution of all threads is complete, time: 2.00 """ + [url=http://ligh.te.ua/topic1195.html]Процессы и потоки в Python

Тэги: программирование

 


Самый-самый блог
Блогер Рыбалка
Рыбалка
по среднему баллу (5.00) в категории «Спорт»
Изменения рейтинга
Категория «Ню»
Взлеты Топ 5
+143
146
IllAIR
+123
143
GetProfit
+116
124
antonesku
+111
126
Melipomena
+108
125
Agnoia
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.