Как реализовать потокобезопасный класс с функцией установки и функцией получения, где частота использования метода устанJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как реализовать потокобезопасный класс с функцией установки и функцией получения, где частота использования метода устан

Сообщение Anonymous »

Предположим, нам нужен потокобезопасный класс под названием Adder, и есть функции добавления и функции получения.

Код: Выделить всё

class Adder {
int counter;
public void add(int a) counter += a;
public int get() return counter;
Сейчас это, очевидно, не является потокобезопасным. Теперь учитывая, что частота использования функции add() составляет 80%, а частота использования get() — 20%. Кроме того, мы разрешаем получение счетчика с задержкой, поэтому функции get не требуется быть потокобезопасной. Как нам следует это реализовать? Очевидно, добавление ключевого слова Synchronized в add() не является хорошим решением, поскольку слишком много потоков будут пытаться получить блокировку, и возникнет состояние гонки.

Кроме того, функция add() всегда должна быть успешной (это означает, что вы не можете использовать неблокирующую блокировку)

Подробнее здесь: https://stackoverflow.com/questions/615 ... on-where-t
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»