线程安全集合类

包括:
StringBuffer: 线程安全
String: 不可变的类 , 都线程安全
Random: 线程安全
Vector: 实现了List,并且线程安全
Hashtable: 实现了Map,并且线程安全

jdk5.0新增的线程安全集合类
ConcurrentHashMap: 实现了Map,并且线程安全
ConcurrentSkipListMap: 实现了Map(可排序),并且线程安全
CopyOnWriteArrayList: 实现了List,并且线程安全

阻塞队列(BlockingQueue)的应用

**队列:**FIFO,即first in first out,先进先出原则

例:

private static BlockingQueue<Product> queue = new ArrayBlockingQueue<>(5);
public static void main(String[] args) {// 生产者线程new Thread(()->{for (int i = 0; i < 10; i++) {Product p = new Product(i);System.out.println(Thread.currentThread().getName()+"生产了:"+p);try {queue.put(p);} catch (InterruptedException e) {e.printStackTrace();}}}).start();// 消费者线程for (int j = 0; j < 5; j++) {new Thread(()->{for (int i = 0; i < 2; i++) {try {Product p = queue.take();System.out.println(Thread.currentThread().getName()+"消费了:"+p);} catch (InterruptedException e) {e.printStackTrace();}}}).start();}}

运行结果:

Thread-0生产了:Product{i=0}
Thread-0生产了:Product{i=1}
Thread-1消费了:Product{i=0}
Thread-0生产了:Product{i=2}
Thread-2消费了:Product{i=1}
Thread-3消费了:Product{i=2}
Thread-0生产了:Product{i=3}
Thread-0生产了:Product{i=4}
Thread-4消费了:Product{i=3}
Thread-5消费了:Product{i=4}
Thread-0生产了:Product{i=5}
Thread-0生产了:Product{i=6}
Thread-1消费了:Product{i=5}
Thread-2消费了:Product{i=6}
Thread-0生产了:Product{i=7}
Thread-0生产了:Product{i=8}
Thread-0生产了:Product{i=9}
Thread-3消费了:Product{i=7}
Thread-5消费了:Product{i=9}
Thread-4消费了:Product{i=8}

Java中的线程安全集合类相关推荐

  1. Java中的线程基础知识

    Java中的线程基础知识 1.线程概念 线程是程序运行的基本执行单元.当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个 ...

  2. java中的线程安全是什么?

    java中的线程安全是什么: 就是线程同步的意思,就是当一个程序对一个线程安全的方法或者语句进行访问的时候,其他的不能再对他进行操作了,必须等到这次访问结束以后才能对这个线程安全的方法进行访问. 什么 ...

  3. 关于Java中的线程安全(线程同步)

    java中的线程安全是什么:就是线程同步的意思,就是当一个程序对一个线程安全的方法或者语句进行访问的时候,其他的不能再对他进行操作了,必须等到这次访问结束以后才能对这个线程安全的方法进行访问 什么叫线 ...

  4. 四十七、面试前,必须搞懂Java中的线程池ThreadPoolExecutor(上篇)

    @Author:Runsen @Date:2020/6/9 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  5. Java 中的线程安全的类

    Java 中的线程安全的类 3 个线程安全的类 它们对应的非线程安全的类 它们延伸的类 其它 它们对应的非线程安全的类 3 个线程安全的类   Java 中的 3 个基本的线程安全的类为:Hashta ...

  6. 不允许使用java方式启动_细品 Java 中启动线程的正确和错误方式

    细品 Java 中启动线程的正确和错误方式 前文回顾详细分析 Java 中实现多线程的方法有几种?(从本质上出发) start 方法和 run 方法的比较 代码演示:/** * * start() 和 ...

  7. 如何在java中实现线程_用代码说话:如何在Java中实现线程

    并发编程是Java语言的重要特性之一,"如何在Java中实现线程"是学习并发编程的入门知识,也是Java工程师面试必备的基础知识.本文从线程说起,然后用代码说明如何在Java中实现 ...

  8. Java中一个线程只有六个状态。至于阻塞、可运行、挂起状态都是人们为了便于理解,自己加上去的。...

    java中,线程的状态使用一个枚举类型来描述的.这个枚举一共有6个值: NEW(新建).RUNNABLE(运行).BLOCKED(锁池).TIMED_WAITING(定时等待).WAITING(等待) ...

  9. 万字图文 | 学会Java中的线程池,这一篇也许就够了!

    来源:一枝花算不算浪漫 线程池原理思维导图.png 前言 Java中的线程池已经不是什么神秘的技术了,相信在看的读者在项目中也都有使用过.关于线程池的文章也是数不胜数,我们站在巨人的肩膀上来再次梳理一 ...

最新文章

  1. Alpha冲刺(9/10)
  2. 服务器与ssl证书有关吗,选择网站SSL证书和服务器位置有没有关系和影响
  3. \\ n和\\ r之间的区别?
  4. 安卓一键新机_安卓福音!微信终于推出这个功能,再也不用羡慕iPhone
  5. 3分钟了解dubbo服务调试管理实用命令
  6. 【WEB安全】flask不出网回显方式
  7. c# Sockect 通信
  8. vue全局组件与局部组件
  9. 工程师和科学家有什么区别
  10. 高性能框架gevent和gunicorn在web上的应用及性能测试
  11. jQuery学习笔记(三):选择器总结
  12. linux ls-la/boot,CentOS系统启动/boot/vmlinuz修复(实验)
  13. 三分钟细数几款可视化前端开发工具
  14. STM8S103之串口查询发送+中断发送
  15. linux局域网聊天软件,自制局域网内聊天与图片传输小软件
  16. 无线射频识别的应用方案有哪些?
  17. 电缆故障测试仪的基本原理与组成——TFN DG15M电缆故障测试仪
  18. linux系统查看电脑cpu,linux系统怎么查看自己电脑的cpu位数
  19. NOIP提高组初赛[选择题知识点汇总]
  20. 你知道这个提高 Java 单元测试效率的 IDEA 插件吗

热门文章

  1. (一)linux基本命令
  2. 甲申日,订盟时—思杰马克丁与吉他左轮签约Guitar Pro合作代言
  3. Java引用类型用法总结(重点)
  4. Python爬虫练习:爬取网站动漫图片
  5. 交叉表查询(TRANSFORM)
  6. 5条JAVA基础 --周剑雄老师
  7. 计算机应用基础实训项目任务说明,计算机应用基础实训项目二综合应用.docx
  8. 《游戏大师Chris Crawford谈互动叙事》一6.3 作为比喻的建模过程
  9. [HTML]立方体动态照片墙,给女孩子表白拿去用吧
  10. 这货是我用过最贵的调试器