Многопоточность с единым списком

Faron

Client
Регистрация
15.12.2015
Сообщения
49
Благодарностей
1
Баллы
8
Приветствую.
До этого никогда не делал многопоточные шаблоны, которые будут использовать списки одновременно. То есть брать с них данные, записывать и удалять. Могут ли появиться какие то проблемы, когда несколько потоков будут пытаться одновременно записывать или удалять строки из списка?
 

Alex91

Активный пользователь
Регистрация
15.08.2024
Сообщения
759
Благодарностей
210
Баллы
43
Проблемы запросто могут появиться на пустом месте, особенно если нет опыта работы с многопотоком.
Но это нормально, нет проблем только у того кто ничего не делает.
 

Dobrii

Client
Регистрация
31.03.2019
Сообщения
227
Благодарностей
79
Баллы
28
Приветствую.
До этого никогда не делал многопоточные шаблоны, которые будут использовать списки одновременно. То есть брать с них данные, записывать и удалять. Могут ли появиться какие то проблемы, когда несколько потоков будут пытаться одновременно записывать или удалять строки из списка?
Все задания становятся в очередь, сами по себе списки так понимаю не рассчитаны на многопоточный режим по умолчанию на уровне скажем так винды, поэтому только последовательное выполнение. Для многопоточных шаблонов как замечаю из практики, лучше всего использовать базы данных, не всегда удобно, но и зависит от задачи напрямую, при необходимости можно одним кубиком дергать с базы все данные в таблицы или списки.
 
Последнее редактирование:

Faron

Client
Регистрация
15.12.2015
Сообщения
49
Благодарностей
1
Баллы
8
Все задания становятся в очередь, сами по себе списки так понимаю не рассчитаны на многопоточный режим по умолчанию на уровне скажем так винды, поэтому только последовательное выполнение. Для многопоточных шаблонов как замечаю из практики, лучше всего использовать базы данных, не всегда удобно, но и зависит от задачи напрямую, при необходимости можно одним кубиком дергать с базы все данные в таблицы или списки.
То есть если один поток выполняет какие либо действия со списком, стандартным кубиком, второй ожидает, и приступает к работе, когда первый все сделал?
 

Dobrii

Client
Регистрация
31.03.2019
Сообщения
227
Благодарностей
79
Баллы
28
То есть если один поток выполняет какие либо действия со списком, стандартным кубиком, второй ожидает, и приступает к работе, когда первый все сделал?
Все верно, именно когда файл освободился от предыдущего задания, с ним начинает производить манипуляции второй поток. Как ранее уточнил, если планируется круглосуточная работа многопотока, то лучше базы данных юзать. Если это работа на 5-20 минут, то не думаю что минута+- по времени играет какую то роль.
 
  • Спасибо
Реакции: Faron

Alex91

Активный пользователь
Регистрация
15.08.2024
Сообщения
759
Благодарностей
210
Баллы
43
То есть если один поток выполняет какие либо действия со списком, стандартным кубиком, второй ожидает, и приступает к работе, когда первый все сделал?
Теоретически... Но почему то весь форум завален постами по типу... А-а-а-а-а помогите многопоток берет одну и туже строку из списка... Или а-а-а-а-а, помогите постоянные дубли в списке ;-)
 

Faron

Client
Регистрация
15.12.2015
Сообщения
49
Благодарностей
1
Баллы
8
Всем спасибо. Решил использовать снипеты, с локированием списков
 

alexman

Client
Регистрация
20.07.2017
Сообщения
43
Благодарностей
7
Баллы
8
Приветствую.
До этого никогда не делал многопоточные шаблоны, которые будут использовать списки одновременно. То есть брать с них данные, записывать и удалять. Могут ли появиться какие то проблемы, когда несколько потоков будут пытаться одновременно записывать или удалять строки из списка?
Опыт у меня не большой, мало чего понимаю в зенке, но многопоток прекрасно работает со списками, если они к файлу прикреплены, загружаются из файла, вносят в него изменения (все галочки нужно поставить). даже когда стартовал сразу с нескольких потоков - проблем не было.
 
  • Спасибо
Реакции: Sergodjan

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)