|
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 8
|
|
Организовать доступ к элементам очереди из двух потоков18.01.2016, 18:22. Показов 4692. Ответов 8
Метки многопоточность (Все метки)
1 поток добавляет элементы в очередь. 2 дргуих должны счиать кждый элемент очереди. Как наилучшим образом организовать считываение элементов из очереди в 2-х поток, чтобы каждый (неизвестно, какой раньше) получил элемен и он был бы удалён.
0
|
|
| 18.01.2016, 18:22 | |
|
Ответы с готовыми решениями:
8
Доступ к элементам управления (DGW, ListBox) из потоков С помощью сигналов организовать очередность записи двух потоков в файл. |
|
|
||
| 18.01.2016, 18:27 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 8
|
|
| 18.01.2016, 18:37 [ТС] | |
|
То есть нужно создать очередь флагов?
0
|
|
|
0 / 0 / 1
Регистрация: 10.12.2014
Сообщений: 36
|
||||||
| 18.01.2016, 18:45 | ||||||
Сообщение было отмечено Памирыч как решение
Решение
1. создаём публичную очередь.
2. создаём мьютекс, для блокировки очереди во время работы с ней. 3. работаем с очередью и незабываем ставить мьютекс 4. желательно очередь и мьютекс создавать в одном классе.
0
|
||||||
|
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 8
|
|
| 18.01.2016, 18:59 [ТС] | |
|
Но таким образом мы сможем только 1 раз (только в одном потоке) обработать записанный в очередь элемент.
У меня 3 потока: 1 записывает в очередь, а 2 других должны по своему обработать каждый элемент. Проблема в том, чтобы оба эти потока получили элемент, а когда оба его получат (неизвестно, какой сделает это первым) удалить его. То есть в одном случае удаление происходит после обработки потоком 2, в другом - потком 3.
0
|
|
|
0 / 0 / 1
Регистрация: 10.12.2014
Сообщений: 36
|
|
| 18.01.2016, 19:28 | |
|
И создать две очереди не получится? Как на счёт писать в обе очереди одно и тоже и обработавовать их потом каждую в своём потоке.
Это конечно не очень рационально, но для наброска угодно. Ведь я понимаю, что нет возможности сразу разделять записи которые валяться в одну очередь?
0
|
|
|
0 / 0 / 0
Регистрация: 16.05.2015
Сообщений: 8
|
|
| 18.01.2016, 19:32 [ТС] | |
|
Разделить при добавлении нельзя, так как все элементы должны быть обработаны обоими потоками (каждый работает с ними по-своему). По поводу двух очередей: я с самого начала так сделал, но по заданию должна быть одна очередь (не обязательно, кстати, очередь, но разницы никакой нет).
0
|
|
|
0 / 0 / 1
Регистрация: 10.12.2014
Сообщений: 36
|
|
| 18.01.2016, 19:39 | |
|
Ну так добавте еще одну очередь и пишите в обе очереди из потока 1.
Второй поток будет обрабатывать очередь 1 Третий поток будет обрабатывать очередь 2 Или сделайте что бы из втрого потока стартовал третий. И в него пепедавайте уже то что считал второй поток.
0
|
|
|
|
||||||
| 18.01.2016, 19:47 | ||||||
Сообщение было отмечено Памирыч как решение
Решение
AlexGornostal, примерно так, я особо не проверял, но принцип там понятен, я думаю.
0
|
||||||
| 18.01.2016, 19:47 | |
|
Помогаю со студенческими работами здесь
9
Одновременный доступ к коллекции из двух потоков Доступ к экземпляру класса из двух потоков Нужно ли синхронизировать доступ к переменной из двух потоков? Доступ к одному методу из двух потоков, критические секции Создать стек из номеров записи. Организовать прямой доступ к элементам записи. (цілі, дійсні, комплексні) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|