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

Faron

Client
Joined
Dec 15, 2015
Messages
49
Reaction score
1
Points
8
Приветствую.
До этого никогда не делал многопоточные шаблоны, которые будут использовать списки одновременно. То есть брать с них данные, записывать и удалять. Могут ли появиться какие то проблемы, когда несколько потоков будут пытаться одновременно записывать или удалять строки из списка?
 

Alex91

Активный пользователь
Joined
Aug 15, 2024
Messages
759
Reaction score
210
Points
43
Проблемы запросто могут появиться на пустом месте, особенно если нет опыта работы с многопотоком.
Но это нормально, нет проблем только у того кто ничего не делает.
 

Dobrii

Client
Joined
Mar 31, 2019
Messages
227
Reaction score
79
Points
28
Приветствую.
До этого никогда не делал многопоточные шаблоны, которые будут использовать списки одновременно. То есть брать с них данные, записывать и удалять. Могут ли появиться какие то проблемы, когда несколько потоков будут пытаться одновременно записывать или удалять строки из списка?
Все задания становятся в очередь, сами по себе списки так понимаю не рассчитаны на многопоточный режим по умолчанию на уровне скажем так винды, поэтому только последовательное выполнение. Для многопоточных шаблонов как замечаю из практики, лучше всего использовать базы данных, не всегда удобно, но и зависит от задачи напрямую, при необходимости можно одним кубиком дергать с базы все данные в таблицы или списки.
 
Last edited:

Faron

Client
Joined
Dec 15, 2015
Messages
49
Reaction score
1
Points
8
Все задания становятся в очередь, сами по себе списки так понимаю не рассчитаны на многопоточный режим по умолчанию на уровне скажем так винды, поэтому только последовательное выполнение. Для многопоточных шаблонов как замечаю из практики, лучше всего использовать базы данных, не всегда удобно, но и зависит от задачи напрямую, при необходимости можно одним кубиком дергать с базы все данные в таблицы или списки.
То есть если один поток выполняет какие либо действия со списком, стандартным кубиком, второй ожидает, и приступает к работе, когда первый все сделал?
 

Dobrii

Client
Joined
Mar 31, 2019
Messages
227
Reaction score
79
Points
28
То есть если один поток выполняет какие либо действия со списком, стандартным кубиком, второй ожидает, и приступает к работе, когда первый все сделал?
Все верно, именно когда файл освободился от предыдущего задания, с ним начинает производить манипуляции второй поток. Как ранее уточнил, если планируется круглосуточная работа многопотока, то лучше базы данных юзать. Если это работа на 5-20 минут, то не думаю что минута+- по времени играет какую то роль.
 
  • Thank you
Reactions: Faron

Alex91

Активный пользователь
Joined
Aug 15, 2024
Messages
759
Reaction score
210
Points
43
То есть если один поток выполняет какие либо действия со списком, стандартным кубиком, второй ожидает, и приступает к работе, когда первый все сделал?
Теоретически... Но почему то весь форум завален постами по типу... А-а-а-а-а помогите многопоток берет одну и туже строку из списка... Или а-а-а-а-а, помогите постоянные дубли в списке ;-)
 

Faron

Client
Joined
Dec 15, 2015
Messages
49
Reaction score
1
Points
8
Всем спасибо. Решил использовать снипеты, с локированием списков
 

alexman

Client
Joined
Jul 20, 2017
Messages
43
Reaction score
7
Points
8
Приветствую.
До этого никогда не делал многопоточные шаблоны, которые будут использовать списки одновременно. То есть брать с них данные, записывать и удалять. Могут ли появиться какие то проблемы, когда несколько потоков будут пытаться одновременно записывать или удалять строки из списка?
Опыт у меня не большой, мало чего понимаю в зенке, но многопоток прекрасно работает со списками, если они к файлу прикреплены, загружаются из файла, вносят в него изменения (все галочки нужно поставить). даже когда стартовал сразу с нескольких потоков - проблем не было.
 
  • Thank you
Reactions: Sergodjan

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)