2011-04-14 5 views
0

Android의 스레드간에 동기화에 관한 질문이 있습니다.Android - 활동에서 변수에 액세스하기 (동기화 사용)

2 스레드가 활성에서 산란하고, 스레드는 각각 동시에 활성이 필드 액세스된다

제가 가지고하면된다.

내가 생각하고하는 것은 같은

synchronize private void functionA() 

또는

synchronize(mContext){ 
.... 
} 

으로, 동기화를 사용하는 것입니다

(mContext 활동의 맥락이다) 그러나 나는 확실하지 않다 정말 효과가있을 것입니다.

아니면 더 좋은 아이디어가 있습니까?

감사합니다.

답변

1

여기 꽤 좋은 예입니다 - 당신이 동기화 getter 및 setter 함수를 생성 한 다음 변수 개인 및합니다

class Account { 
    private double balance;    // make variable private 

    // write synchronized accessor methods 
    public synchronized void setBalance(double b) { 
     balance = b; 
    } 

    public synchronized double getBalance() { 
     return balance; 
    } 

    // modify update method to use accessor methods 
    synchronized void updateBalance(double amount) { 
    // double b = getBalance(); 
     setBalance(getBalance() + amount); 
    } 
} 

출처 : 여기 http://www.janeg.ca/scjp/threads/synchronized.html

와는 또 다른 예제를,이 시간의 ArrayList를 사용하여 : http://www.vogella.de/articles/JavaConcurrency/article.html#concurrencyjava_synchronized

+0

와우 감사합니다. –

0

동기화는이를 수행하고 스레드를 동 기적으로 만들 수 있습니다.

관련 문제