1 / 1 / 0
Регистрация: 20.07.2021
Сообщений: 19
1

Мультипоточность. Польза или вред?

19.03.2022, 14:02. Показов 446. Ответов 2

Добрый день, знатоки!
Прошу вашей помощи.
Есть такой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import multiprocessing
a = 1
b = 2
c = 3
r = 0
cores = 8
def seek(r):
    with open('comb.txt', 'r') as fl:
        for lst in fl:
            string = str(lst).join(lst.split())
            f = open(u"file.txt","a")
            f.write(str(eval(string)) + '\n')
            print(eval(string))
            
if __name__ == '__main__':
    jobs = []
    for r in range(cores):
        p = multiprocessing.Process(target=seek, args=(r,))
        jobs.append(p)
        p.start()
Суть в том, что из файла читаются строки с переменными вида a+b*c... и через eval вычисляется значение. Строк очень много, плюс много операций в каждой строке.
Решил прикрутить многопоточность.
Но в итоге, он начал считывать строки одну по несколько раз, вместо несколько строк одновременно(для чего, собственно, я и задумал это) Даже интересно стало, возможны такие операции с файлами?
В интернете ответа толкового не нашел. Понимаю, что ошибка кроется в недопонимании мной этой библиотеки
Буду рад любой помощи, друзья!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2022, 14:02
Ответы с готовыми решениями:

Ccleaner польза или вред?
Если подробно то у меня windows 7 x64 иногда чищу ccleanerom тоже под 64/ Читал статьи и наткнулся...

Каталоги: Польза или вред?
Регистрация в каталогах - это наращивание тиц, правильно? а что каталогам с того, что у них...

Зеркала сайта. Польза или вред?
Вообще есть хоть какая то польза от этих зеркал? У основного сайта есть зеркало на другом домене....

Оптимизация ОЗУ - польза или вред?
Всем привет! Вчера столкнулся с такой ситуацией. Пришлось обрабатывать большое количество...

В чем польза или вред применения фреймворков в Java Web?
Если кому не лень поясните пожалуйста новичку зачем в Java WEB нужны фреймворки? Взять хотя-бы...

2
Автоматизируй это!
Эксперт Python
5946 / 3763 / 1056
Регистрация: 30.03.2015
Сообщений: 11,331
Записей в блоге: 29
19.03.2022, 23:13 2
bomber666, а где ты реализовал логику чтения разных строк? каждый процесс читает файл с начала - как ты и написал.
есть такая штука -пул процессов, читаем файл построчно и кидаем каждую строку для обработки в пул (как аргумент функции), функция умеет делать что там тебе надо... Потом просто ждешь окончания работы пулом и достаешь результаты
Ах да и писать в файл в разных процессах тоже не надо, сначала собери все результаты и запиши 1 раз сразу все
0
1 / 1 / 0
Регистрация: 20.07.2021
Сообщений: 19
22.03.2022, 11:37  [ТС] 3
Спасибо за разъяснения. Буду пробовать
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2022, 11:37
Помогаю со студенческими работами здесь

Электрочайник с подсветкой - декорация или польза?
Скажите, а подсветка в электрочайниках играет какую-то практическую роль или это только...

Индекс цитирование - в пользу или во вред?
Я недавно узнал, что за повышение индекс цитированя, yandex может забанить сайт. Каким способом...

AhrefsBot - польза есть, или просто вредный?
Не обращал внимания раньше, но тут вот посмотрел на форуме страницу "онлайн посетители" и увидел,...

Заголовок как ссылка - зло или польза?
В общем то вопрос ясен из темы. Новые материалы на сайте выводятся с анонсом. т.е. страницы как...

Чтение художественной литературы: польза или развлечение?
Кто как считает: является ли чтение художественной литературы чем-то несущим пользу читающему? Или...

Отключение визуальных эффектов Windows 10 - плацебо или реальная польза для работы?
Если отключить интерфейс Fluent Design и включить стандартный древний, как на XP - будет ли...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru