Суть вышесказанного в том, что это - как раз и есть единственный вариант. И никакого принципиально иного (более быстрого) варианта не может существовать.
Программный код можно, конечно, оптимизировать, но это даст только линейное ускорение во сколько-то раз по сравнению с неоптимизированным оригиналом. Превратить экспоненциальную сложность алгоритма (зависимость времени выполнения от количества вершин) в линейную - невозможно.
Sushkov: multiprocessing, в общем-то, не имеет отношения к потокам.
multiprocessing - это независимые экземпляры интерпретатора в отдельных процессах ОС, каждый со своим собственным адресным пространством и отдельной (копией) областью памяти. В любой многозадачной ОС процессы, естественно, выполняются полностью параллельно. Но поскольку отдельные процессы не разделяют между собой никакую область памяти (file mapping не берем в расчет), то любые коммуникации между ними требуют дополнительных манипуляций (необходимость в сериализации передаваемых объектов все еще больше усложняет).
multiprocessing только сверху имитирует API модуля threading. ИМХО, зря разработчики пошли на этот шаг, это сбивает с толку и усугубляет путаницу.
Константин Омелян: У вас в первом варианте на каждую букву слова или происходит print('Да') или происходит ничего. Во втором варианте на каждую букву слова в любом случае происходит print, разница лишь в том, будет это print('Да') или print('Нет').
splunk: А Закон Всемирного Тяготения Ньютона зачем-то преподают в ВУЗах (и в школах давно уже) почти с момента его открытия, то есть за 300 лет до космических полетов.
Зачем вам софт для распределенных вычислений?
У вас есть много серверов, ни один из которых по одиночке не справляется с объемами нагрузки?
Если это - не ваша ситуация, то Hadoop - решение не вашей проблемы.
UltimateOrb: Ничего смешно, это как раз хорошая практика, только важно построить правильное дерево наследования исключений, типа BoxNotFoundException и BoxAlreadyScannedException наследуются от BoxProcessingException, который наследуется от GeneralProcessingException. И отлавливать следует более общие классы, чем объявлены в функции, вызываемой в блоке try. Например: функция oneOfBoxProcessingSpeps бросает BoxNotFoundException, но в том месте, где она вызывается, отлавливается BoxProcessingException. Дальше функция processBox бросает BoxProcessingException, но в том месте, где она вызывается, отлавливается GeneralProcessingException. Это дает огромную гибкость в том, что позволяет в больших пределах менять реализацию конкретной функции/класса, ничего не трогая на вызывающей стороне. Это очень актуально в крупном проекте из кучи модулей.
У меня тоже встроенное Intel-видео, тоже x64, тоже 1920x1080. Сейчас правда Jessie, но он же был не всегда. Раньше когда был Wheezy, я что-то не припомню подобных проблем с видео.
Большинство студентов никогда не будут (добровольно без угрозы отчисления) изучать ничего, просто потому что им не интересно ничего, кроме как после пар попить пива и поиграть в контру.
Юрий: Если на локальной машине не стоит веб-сервер и ничего не слушает порт 80, то подобная запись в hosts, заставит браузер мгновенно выбросить сообщение "сервер недоступен ..." без обращения к сети и без задержек. Веб-сервер может пригодиться, чтобы показывать конкретную страницу с ошибкой, содержание которой можно подобрать так, чтобы юзер ничего не заподозрил, не стал искать обходных путей и не стал никого просить помочь ему с этой "проблемой".
Плюсанул за то, что кто-то решил ответить на вопрос, которому больше года (при том, что вероятность, что кто-то это прочтет, довольно низкая). Но не согласен по сути: учить язык по видео все равно, что учиться играть на музыкальном инструменте по книгам. С Одерски следует начинать и заканчивать на этом с книгами/руководствами и прочими туториалами, потому что дальше можно уже просто читать исходники и официальную документацию и экономить свое время, вместо того чтобы потреблять вторичный продукт, ту же самую информацию, только пережеванную ком-то.
Например, поставить на локалхост легкий незаметный веб-сервер, типа lighttpd. Влепить всего одну статическую страницу, типа "Извините, сайт временно недоступен по техническим причинам".
А в hosts прописать: 127.0.0.1 www.mein-kampf.рф
O Di:
- Этот TOR начинает создавать проблемы. Как бы заставить граждан перестать им пользоваться?
- Пустим слух о том, что TOR скомпрометирован.
- Но тогда они перейдут на что-то, что нескомпрометировано.
- Правильно! Никто же не скажет, что открытое соединение может быть скомпрометировано.
- :)))
Суть вышесказанного в том, что это - как раз и есть единственный вариант. И никакого принципиально иного (более быстрого) варианта не может существовать.
Программный код можно, конечно, оптимизировать, но это даст только линейное ускорение во сколько-то раз по сравнению с неоптимизированным оригиналом. Превратить экспоненциальную сложность алгоритма (зависимость времени выполнения от количества вершин) в линейную - невозможно.