Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
17 / 17 / 0
Регистрация: 26.02.2013
Сообщений: 497

3.7 Процессы или потоки ?

17.02.2018, 01:52. Показов 5840. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создал с помощью мультипроцессинга два процесса заполняющие некий сайт параллельно (webdriver), все работает. Но возникли вопросы:
1) У меня старый i7 860 - сколько подобных процессов есть смысл запускать ? Есть вообще разница, сколько ядер у процессора ?
2) В чем отличие процессов от потоков из threading ?

Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2018, 01:52
Ответы с готовыми решениями:

Потоки или процессы для многочисленных сессий
Доброго времени суток! Есть необходимость в целях создания нагрузки (сетевая активность определенного рода) запускать множество...

Потоки/процессы
Здравствуйте, есть self-объект event, работаю я с библиотекой vk_api и мне нужно либо в отдельных потоках либо в отдельных процессах...

Потоки, процессы и асинхронное программирование
Добрый вечер. Почитал документацию и по моему я только еще больше запутался. Есть модуль Threadind - который подразумевает...

25
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
17.02.2018, 12:31
Подскажите статью про многопоточность
0
17 / 17 / 0
Регистрация: 26.02.2013
Сообщений: 497
17.02.2018, 13:10  [ТС]
Кроме большой статьи на английском там нет ничего, а статья не про то...
0
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
17.02.2018, 13:23
ну значит ты плохо смотрел)
0
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,878
18.02.2018, 07:33
Цитата Сообщение от BVladimir2 Посмотреть сообщение
Создал с помощью мультипроцессинга два процесса заполняющие некий сайт параллельно (webdriver), все работает.
А что значит "заполнять сайт"?
0
17 / 17 / 0
Регистрация: 26.02.2013
Сообщений: 497
18.02.2018, 12:47  [ТС]
Открывается окно броузера (webdriver) логинится и пасвордится в нужную часть сайта, загружается много цифр из эксел и забивается все это в кучу инпутов. В два процесса получается почти вдвое быстрее...
0
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,878
18.02.2018, 14:06
Цитата Сообщение от BVladimir2 Посмотреть сообщение
В два процесса получается почти вдвое быстрее...
Может в два потока, а не в два процесса?

Цитата Сообщение от BVladimir2 Посмотреть сообщение
1) У меня старый i7 860 - сколько подобных процессов есть смысл запускать ? Есть вообще разница, сколько ядер у процессора ?
Разница есть. Но сможете ли Вы распараллелить чтение из эксел?

Цитата Сообщение от BVladimir2 Посмотреть сообщение
В чем отличие процессов от потоков из threading ?
Процесс получает системные ресурсы. В одном процессе можно запустить несколько потоков. Все потоки в одном процессе совместно используют ресурсы этого процесса.
0
17 / 17 / 0
Регистрация: 26.02.2013
Сообщений: 497
18.02.2018, 19:26  [ТС]
Сейчас используется модуль multiprocessing -это процессы, вроде. Из эксэл данные грузятся в основном процессе и только потом создаются двое детишек и им скармливаются два куска данных как параметры (с очередью пока разбираюсь). В принципе грузить из эксэл данные параллельно не нужно...пока. А, кстати, можно ли используя com-соединение через pyWin32 (или как то так называется библиотека)? Измениться что-нибуль если мне вместо multiprocessing -а использовать threading медленей или быстрее станут работать мои два детишки- вебдрайвер.броузеры ?
0
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,878
19.02.2018, 10:10
Цитата Сообщение от BVladimir2 Посмотреть сообщение
Сейчас используется модуль multiprocessing -это процессы, вроде.
Это потоки.

Python
1
2
3
4
5
6
7
8
9
import os
from multiprocessing import Pool
 
def f(x):
    return os.getpid()
 
if __name__ == '__main__':
    p = Pool(5)
    print(p.map(f, [1, 2, 3]))
Добавлено через 20 минут
Создание процесса и обмен данными между процессами - это затратные задачи. Обычно это не окупается, если не позволяет привлечь дополнительные ресурсы (например, процессы выполняются на разных компьютерах). На одном компьютере для параллельных вычислений обычно используют потоки.

Ваша задача разбивается на три подзадачи: чтение файла, формирование запроса и отправку запроса.
На время отправки/обработки запроса Вы повлиять не можете.
Если файл очень большой, то чтение файла можно ускорить, если не читать его в память целиком.
Если для формирования запроса требуются сложные вычисления, то их можно ускорить, выполняя в разных потоках (при условии, что вычисления можно распараллелить). Для Вашего процессора - наверное, оптимально 8 потоков.
0
19.02.2018, 12:14

Не по теме:

ой...

0
17 / 17 / 0
Регистрация: 26.02.2013
Сообщений: 497
19.02.2018, 13:10  [ТС]
Т.е. если перейду с процессов на потоки у меня также будут открываться окна броузеров без проблем ? Или потоки больше для вычислений ?

Добавлено через 37 секунд
pool не использую...

Добавлено через 40 секунд
и Винде появляются новые процессы Питон...
0
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
19.02.2018, 13:16
Может ты subprocess используешь? не важно потоки или процессы. новые окна веб драйвера будут появляться)
0
17 / 17 / 0
Регистрация: 26.02.2013
Сообщений: 497
19.02.2018, 15:04  [ТС]
нет использую мултипроцессинг и его процессы. Значит с практической точки зрения, что потоки что процессы, в моем случае - без разницы ?
0
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
19.02.2018, 16:03
вообще разница есть всегда. процессы дольше стартуют, больше жрут памяти, больше грузят CPU. Ты попробуй и то и то. И посмотри как тебе лучше.
0
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,878
19.02.2018, 17:55
Цитата Сообщение от Shamil1 Посмотреть сообщение
Это потоки.

import os
from multiprocessing import Pool
def f(x):
return os.getpid()
if __name__ == '__main__':
p = Pool(5)
print(p.map(f, [1, 2, 3]))
Код некорректный. Корректный код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
import os
from multiprocessing import Pool
from time import sleep
 
def f(x):
    sleep(1)
    return os.getpid()
 
if __name__ == '__main__':
    p = Pool(5)
    print(p.map(f, [1, 2, 3]))
    x = input()
Так что это, действительно, процессы.
0
19.02.2018, 19:26

Не по теме:

Shamil1, блин, вот я знал же)) хотел даже сказать))

0
17 / 17 / 0
Регистрация: 26.02.2013
Сообщений: 497
19.02.2018, 19:30  [ТС]
Pool это "одноразовые" процессы -типа для быстрой отработки и закрытия - чем они лучше потоков, так и не понял.

Про ресурсы/загрузку процессов/потоков прочитал - но, если все так просто, зачем тогда вообще кому-то может понадобится использовать процессы вместо потоков ?

У меня опыта нет - поэтому выбрал процессы, а времени разбираться с потоками нет пока...
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
19.02.2018, 19:35
Цитата Сообщение от BVladimir2 Посмотреть сообщение
Pool это "одноразовые" процессы -типа для быстрой отработки и закрытия - чем они лучше потоков, так и не понял.
pool это создание нескольких процессов, тратим много времени, но 1 раз в начале, а затем просто берем уже готовые.

Может все-таки разберешься сначала, а то потом вылезут проблемы
0
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
19.02.2018, 19:35
Процессы частично обходят GIL, когда это оправдано то используют процессы.
0
17 / 17 / 0
Регистрация: 26.02.2013
Сообщений: 497
19.02.2018, 22:03  [ТС]
Напишу проще, ЗАЧЕМ используют процессы если есть ПОТОКИ ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2018, 22:03
Помогаю со студенческими работами здесь

процессы и потоки!
Привет! Начинаю изучать процессы и потоки! Возможно кто-то сможет подкинуть код программы на любую тему, главное чтобы она работала с...

Процессы и потоки
Собственно говоря,задание по операционным системам 3. Создать программное средство которое позволит добавлять процессы, удалять процессы....

Процессы и потоки?
Всем привет!) Помогите пожалуйста разобраться в....) В общем ситуация такая, написал бота-кликера для игры ArcheAge, по сути бот посылает...

Процессы и потоки в Qt
Наткнулся на такую статью в Хабре http://habrahabr.ru/post/150274/ Пишут, что создание потока через создание класса, наследуемого от...

Потоки и процессы
Есть форма с двумя листбоксами и одной кнопкой. При нажатии кнопки на одном листбоксе выводятся запущенный процессы. При нажатии на какой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru