创建一个线程安全的set集合

 我来答
Arvin90
2016-11-10 · TA获得超过452个赞
知道小有建树答主
回答量:297
采纳率:89%
帮助的人:234万
展开全部

可以利用Collections工具类的synchronizedSet方法修饰一个非同步的Set变成同步Set

Set<T> set = new HashSet<T>(); // 非同步,非线程安全的Set
Set<T> syncSet = Collections.synchronizedSet(set); // 返回了一个线程安全的Set
百度网友a5e509c
2016-11-10 · TA获得超过510个赞
知道小有建树答主
回答量:516
采纳率:76%
帮助的人:147万
展开全部
package test;

import java.util.LinkedList;
import java.util.Scanner;

public class A {
    public static void main(String[] args) {
        for(int i=0;i<1000;i++)
        {
            Thtrad.list.add("我是第"+(i+1)+"个元素");
        }
        
        for(int i=0;i<10;i++)
        {
            Thtrad thread = new Thtrad();
            thread.start();
        }
    }

}
package test;

import java.util.LinkedList;

public class Thtrad extends Thread{
    
    public static LinkedList list = new LinkedList<>();
    private boolean status = true;
    public void run()
    {
        while (true) {
            if(!list.isEmpty())
            {
                String a = (String) list.poll();
                System.out.println(Thread.currentThread().getName()+":"+"list元素:"+a);
            }
            else
            {
                status=false;
            }
            
            
        }
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式