Разница между синхронизированными и блокировками чтения / записи такова, что при использовании синхронизированного доступа к нему одновременно доступен только один поток.С блокировкой чтения / записи вы можете одновременно иметь несколько считывателей (учитывая, что блокировок записи уже нет), поэтому в некоторых случаях вы можете получить лучшую параллельную производительность, особенно при большом количестве операций чтения.
Выследует добавить еще много потоков, обращающихся к этому объекту, для проверки производительности.
И вы можете просто посчитать время между завершением и началом операций для измерения производительности (например, Long startTime = System.nanoTime ();).
Прочтите здесь, чтобы узнать, как проверить, закончился ли поток, чтобы вы могли измерить время выполнения: Как узнать, закончили ли другие потоки?
editответить на комментарий: Эй, мой ответ немного упрощен (хорошо, очень, так как многопоточность трудна), так как я писал это в промежутке между работой, поэтому сейчас я могу связать вас с некоторыми другими ресурсами, которые предоставляют больше информации.Глубина взгляда.
очень простой примерв соответствии с вашим существующим классом:
class Number {
private int value;
public Number(int value) {
this.value = value;
}
public synchronized int getValue() {
return value;
}
public synchronized int changeData(int change) {
value = change;
return value;
}
}