栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java-多线程持续

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java-多线程持续

线程状态

  • Thread.yield():提出释放CPU时间⽚的请求。不会释放锁,线程依然处于RUNNABLE状态,即调度权让给别⼈,但⽴刻可以回到竞争线程锁的状态。
  • Thread.sleep():调⽤后线程处于阻塞状态,注:线程状态处于BLOCKED或WAITING或TIME_WAITING这三种统称为堵塞状态。

线程安全的常用数据结构

  1. HashMap:ConcurrentHashMap
  2. ArrayList:CopyOnWriteArrayList
  3. Set:CopyOnWriteArraySet

关键字

  • volatile
    volatile只能用于修饰变量,不能用于修饰方法或代码块。
    ​当被volatile修饰的变量被读取的时候,是从主存读取,当被volatile修饰的变量被写入的时候,是写入到主存。
    多数用于标记性作用
  • volatile解决的问题
    内存可见性问题
    指令重排问题。
  • volatile作用
    保证共享变量的可见性。
    保证共享变量使用时的有序性。
  • 总结
    synchronized 修饰方法或代码段。
    synchronized 保证原子性。原子内部的代码由于不能并发执行,因此内部不存在有序性、可见性问题。因此,synchronized 可以保证线程安全。
    volatile 修饰变量。
    volatile 保证变量
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/921400.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号