Если у меня есть два синхронизированных метода в одном классе, но каждый из них обращается к разным переменным, могут ли два потока одновременно обращаться к этим двум методам? Происходит ли блокировка объекта или она становится такой же конкретной, как и переменные внутри синхронизированного метода?
Если у меня есть два синхронизированных метода в одном классе, но каждый из них обращается к разным переменным, могут ли два потока одновременно обращаться к этим двум методам? Происходит ли блокировка объекта или она становится такой же конкретной, как и переменные внутри синхронизированного метода?
Пример:
[code]class X {
private int a; private int b;
public synchronized void addA(){ a++; }
public synchronized void addB(){ b++; }
} [/code]
Могут ли два потока получить доступ к одному и тому же экземпляру класса X, выполняя x.addA() и x.addB() одновременно?
Проблема:
Я изучаю Java по книге Герберта Шилдта «Java The Complete Reference Tenth Edition». Я работаю над программой Java с несколькими потоками и ожидаю, что выходные данные будут в определенном порядке, но получаю разные результаты. Я использую...
Проблема:
Я изучаю Java по книге Герберта Шилдта «Java The Complete Reference Tenth Edition». Я работаю над программой Java с несколькими потоками и ожидаю, что выходные данные будут в определенном порядке, но получаю разные результаты. Я использую...
У меня есть цепочка Reactor, которая вызывает синхронизированный метод, как показано ниже. Всякий раз, когда истекает срок действия токена аутентификации, мне нужно отправить запрос на сервер для получения нового токена, а получение нового токена...
Я работаю над вопросом о домашнем задании (конец этого PDF):
Код:
В главе32, домашнее задание 8, он использует глобальный замок для предотвращения тупика. Кодовый вектор-avoid-hold и wait.c ниже:
void vector_add(vector_t *v_dst, vector_t *v_src)...