Как реализовать потокобезопасный класс с функцией установки и функцией получения, где частота использования метода устан ⇐ 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

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