美文网首页
验证List线程的安全性

验证List线程的安全性

作者: LeonardoEzio | 来源:发表于2019-01-04 11:34 被阅读0次

线程安全的定义

  • 多个线程访问同一个对象资源时,不会出现对当前对象资源的数据造成污染与破坏时,那么这个资源对象就是线程安全的。

验证List的非线程安全

 public class ListSafeProveTwo {

    public static void main(String[] args) throws Exception{

        List<Integer> safe = Collections.synchronizedList(new ArrayList<>());//线程安全的List
        List<Integer> unsafe = new ArrayList<>();//非线程安全的list

        for (int i = 0 ; i<10 ; i++){//测试次数
            safe.clear();
            unsafe.clear();
            prove(unsafe, safe);
        }
    }

    public static void prove (List<Integer> unsafe , List<Integer> safe)throws Exception{
        for (int i = 0 ; i < 10000 ; i++){ //开启10000个线程,同时往List里面添加数据
            new Thread(new Runnable() {
                @Override
                public void run() {
                   unsafe.add(1);
                   safe.add(1);
                }
            }).start();
        }

        Thread.sleep(50); // 主线程休眠 , 为了给子线程足够的执行时间

        System.out.println("unsafe Size : "+ unsafe.size()+" | safe Size : "+ safe.size());
   }
}

相关文章

  • 验证List线程的安全性

    线程安全的定义 多个线程访问同一个对象资源时,不会出现对当前对象资源的数据造成污染与破坏时,那么这个资源对象就是线...

  • EffectiveJava第十章第五节

    线程安全性的文档化 并非出现synchronized关键字就是线程安全性文档化了。实际上,一个类支持的线程安全性有...

  • String的线程安全

    线程安全性 说道有关string的线程安全性,大家想到的肯定时stringbuffer和stringbuilder...

  • Java并发编程 线程安全性

    什么是线程安全性 线程安全性:当多个线程访问某个类时,不管运行时采用何种调度方式或者这些线程将被如何交替执行,并且...

  • java并发编程实战2~3

    2 线程安全性 2.1 什么是线程安全性 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何...

  • 谈谈并发编程中的线程安全性

    1. 线程安全性 在单线程程序中,我们并不需要去考虑线程的安全性。但是在多线程程序中,由于多个线程要共享相同的内存...

  • 高并发编程03 ~ 线程安全性

    这节我们讨论一个话题:线程安全性 一、概念 线程安全性:当多个线程同时访问某个资源的时候,不管环境采用何种调度方式...

  • Effective STL 第12条

    容器的线程安全性 不能对容器的线程安全性抱太大的期望 对于stl容器,大部分容器只能保证1)支持多线程同时读2)支...

  • 线程安全性(一)

    参考线程安全性总结 CountDownLatchCountDownLatch 可以阻塞线程并保证线程在满足某种特定...

  • 线程安全性详解

    线程安全性 线程安全性定义: 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并...

网友评论

      本文标题:验证List线程的安全性

      本文链接:https://www.haomeiwen.com/subject/qojhrqtx.html