0 / 0 / 0
Регистрация: 04.01.2015
Сообщений: 44
|
|
1 | |
Как выполнить синхронизацию потоков07.09.2017, 22:26. Показов 957. Ответов 4
Метки нет (Все метки)
Добрый вечер!
Получил задание с определенным условием, а именно "разделить операции на потоки и синхронизацию потоков выполнять с помощью базовых механизмов платформы (без использования Task Parallel Library и concurrent-коллекций)". Как можно это реализовать? Откопал оператор lock и по нему короткий мануал и пример. Он годится? Опыта программирования на C# нет, только Java и С++, но человеку надо сделать на C#.
0
|
07.09.2017, 22:26 | |
Ответы с готовыми решениями:
4
Как реализовать ПРАВИЛЬНУЮ синхронизацию потоков? Как выполнить цикл в несколько потоков с использованием Task? Как обеспечить синхронизацию xchg для нескольких потоков? Задача на синхронизацию потоков |
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
|
||||||
08.09.2017, 07:06 | 2 | |||||
Оператор lock блокирует доступ к объекту остальным потокам и они ждут пока снимется блокировка , к примеру
Пы сы, а еще есть потокобезопасные коллекции , там блокировки уже вшиты...
0
|
Футболист
532 / 434 / 142
Регистрация: 31.10.2011
Сообщений: 1,010
|
||||||
08.09.2017, 10:17 | 3 | |||||
ConcurrentBag<T>
нет! Проведем работу над ошибками, и получим:
0
|
0 / 0 / 0
Регистрация: 04.01.2015
Сообщений: 44
|
|
08.09.2017, 16:45 [ТС] | 4 |
Спасибо, но ведь в примере кода используется ключевое слово Thread из System.Threading, которая входит в TPL. Задача у меня стоит в том, что "синхронизацию потоков выполнять с помощью базовых механизмов платформы (без использования TPL, Concurrent-коллекций)".
Допустим, необходимо разбить работу программы на несколько потоков, первый поток делает операцию рекурсивного обхода каталогов, второй поток выполняет определенные манипуляции с файлами, третий поток делает записи в БД результатов работы программы.
0
|
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
|
||||||
11.09.2017, 07:23 | 5 | |||||
Thread создает потоки (ведь как то, их нужно создавать), а синхронизация делается блокировками Lock
Так ты пытаешься избежать синхронизации, а тебе как я понял нужно задействовать синхронизацию
0
|
11.09.2017, 07:23 | |
11.09.2017, 07:23 | |
Помогаю со студенческими работами здесь
5
Какую синхронизацию потоков применить во избежание конфликта Выполнить заполнение массива с использованием нескольких потоков Как отключить вертикальную синхронизацию? Потоки и их синхронизация. Как настроить синхронизацию? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |