Java:这种业务逻辑如何做到线程安全呢?

public class Process implements Runnable {
    public static Set<String> set = new HashSet<String>();

    public void run() {
        // 1、遍历取出set中元素
        // 2、具体业务逻辑
        // 3、清空set
        set.clear();
    }

    public void storage(String str) {
        set.add(str);
    }
}

其他模块会调用storage()向Set中添加元素,而Process会定时取出并处理Set中的元素,如何保证在Process的run()执行的同时,其他模块不会向Set中添加元素呢?如果在步骤2、3之间刚有其他模块向Set中添加元素,这个元素还没有得到处理就被消除掉了,希望得到大家的指点。

慕雪6442864
浏览 415回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java