java - Android - 访问 Activity 中的变量(使用同步)

标签 java android

我对 Android 中的线程之间的同步有疑问。

我拥有的是:

从一个 Activity 中派生出 2 个线程,并且每个线程都同时访问该 Activity 中的一个字段。

我想到的是使用synchronize,比如

synchronize private void functionA()  

synchronize(mContext){  
....  
}  

(其中 mContext 是 Activity 的上下文)

但我不确定它是否真的有效。

或者谁有更好的想法?

谢谢。

最佳答案

这是一个很好的例子 - 将变量设置为私有(private),然后创建同步的 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

关于java - Android - 访问 Activity 中的变量(使用同步),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5660027/

相关文章:

java - (PircBotX,Java和Twitch)应如何应用该对象?

java - 未找到 Spring Data Rest 存储库

android - SurfaceView:ClassCastException,无法启动 Activity

java - 如何删除重复键,安卓自定义键盘的按键预览

java - Jedis 中的响应对象 - 抛出 ClassCastException

java - Spring:根据 String 参数实例化一个类

java - 使用 jdbc JAVA 对 DAO 类进行 Spring 单元测试

android - 以编程方式检查设备是否有 NFC 读取器

java - 警报对话框内的 TextView 不会向下滚动

android - 如何将所有操作项放在左侧,尽可能多地占用空间,同时在右侧溢出?