Re: Вопрос по synchronized
От: alkor  
Дата: 11.02.05 11:57
Оценка:
Здравствуйте, Vadim_A, Вы писали:

V_A>Давно пишу на java, но треды и синхронизацию использовал очень редко, отсюда появилась одна проблема. Наткнулся на вопрос из Java2 BrainBench — Имеется следующий код и варианты ответов

V_A>----------------------------------------------------------------------------
V_A>public class ThreadUnsafe {
V_A>private static int commonCounter=0;

V_A>public int getCount() {return commonCounter;}

V_A>public void addCount(int val) { commonCounter+=val;}
V_A>public void subtractCount(int val)
V_A>{ commonCounter-=val; }
V_A>}

Если поле методы обязательно надо оставить insrance a полe commonCounter static'ом
то синхронизироваться надо так


public class ThreadUnsafe {
    private static int commonCounter=0; 

    public int getCount() {
        synchronized (ThreadUnsafe.class) {
            return commonCounter;
        }
    } 
    public void addCount(int val) {
        synchronized (ThreadUnsafe.class) {
            commonCounter+=val;
        }
    } 
    public void subtractCount(int val) {
        synchronized (ThreadUnsafe.class) {
            commonCounter-=val;
        }
    } 
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.