powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Задачка по синхронизации потоков. Помогите решить.
2 сообщений из 2, страница 1 из 1
Задачка по синхронизации потоков. Помогите решить.
    #34821354
Vetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Вот, встала тут передо мной следующая задачка:
Есть два метода:
void f1(){
// начало f1
...

// синхрочасть метода f1
...

// конец of f1
...
}

void f2(){
// начало f2
...

// синхрочасть метода f2
...

// конец f2
...
}

Так вот, задача следующая - нужно сделать так, чтобы синхрочасти методов f1 и f2 не могли выполняться параллельно, но при этом нужно разрешать выполняться параллельно синхрочастям метода f1.

Попробую еще сказать это и другими словами:
1) синхрочасти метода f1 должны иметь возможность выполняться параллельно.
2) перед синхрочастью метода f2 нужно подождать, пока закончатся все синхрочасти метода f1. В момент такого ожидания новые синхрочасти метода f1 не должны начинаться, а должны ожидать окончания выполнения синхрочасти метода f2.

Как это можно сделать? Подскажите пожалуйста!

Всем заранее спасибо!
...
Рейтинг: 0 / 0
Задачка по синхронизации потоков. Помогите решить.
    #34821660
TiG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разделяемая блокировка. Предлагаю воспользоваться фичами java.util.concurrent.locks, думаю ReentrantReadWriteLock это то, что вам нужно.
Ну и если очень хочется, можно то же самое реализовать и самому - оч удобно использовать классы java.util.concurrent.atomic. Хотя собсно основная идея там будет та же. На эту тему можете почитать Java theory and practice: Going atomic . Ксати на developerWorks есть еще несколько вполне доходчивых статей про фичи java.util.concurrent.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Задачка по синхронизации потоков. Помогите решить.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]