首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
过河卒子
掘友等级
全栈增长工程师
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
8
文章 8
沸点 0
赞
8
返回
|
搜索文章
赞
文章( 8 )
沸点( 0 )
Java多线程 - ThreadLocal详解
ThreadLocal是一个为线程提供线程本地变量的工具类。它的思想也十分简单,就是为线程提供一个线程私有的变量副本,这样多个线程都可以随意更改自己线程的变量,不会影响到其他线程。 Threadlocal通过一个内部类ThreadLocalMap实现对不同线程中不同值的映射,k…
Java多线程 - Spring中的线程安全
在spring中bean的默认创建scope是singleton的,即创建的对象是单例的,并且当我们使用这些bean时,如我们经常使用的Service、DAO和Controller,大多数情况下都是以类似工具类的形式使用,只是调用这些bean的方法,而不会对bean的属性、状态…
Java多线程 - 阻塞队列详解
阻塞:写入队列空间时当队列满会阻塞,获取队列数据时当队列为空时将阻塞。 实际情况:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。 ArrayBlockingQueue :一个由数组结构组成的有界阻塞队列。 LinkedBlocking…
Java多线程 - AQS详解
在AQS类中维护了一个使用双向链表Node实现的FIFO队列,用于保存等待的线程,同时利用一个int类型的state来表示状态,使用时通过继承AQS类并实现它的acquire和release方法来操作状态,来实现线程的同步。 以ReentrantLock为例,state初始化为…
Java多线程-线程安全的单例模式的实现
缺点:在多个线程调用getInstance方法时,都会加锁后判断,效率低,时间较长。 但是由于 JVM 具有指令重排的特性,执行顺序有可能变成 1->3->2。指令重排在单线程环境下不会出现问题,但是在多线程环境下会导致一个线程获得还没有初始化的实例。例如,线程 T1 执行了 …
Java多线程 - 锁机制
synchronized关键字经过编译之后,会在同步块的前后分别形成monitorenter和monitorexit这两个字节码指令,这两个字节码都需要一个reference类型的参数来指明要锁定和解锁的对象。如果Java程序中的synchronized明确指定了对象参数,那就…
Java多线程 - 从JVM角度理解多线程
Java虚拟机所管理的内存中最大的一块,java堆是所有线程共享到的一块内存区域,在虚拟机启动时创建,用于存放对象实例,几乎所有的对象实例以及数组都在这里分配内存。 Java 堆是垃圾收集器管理的主要区域,因此也被称作GC 堆(Garbage Collected Heap).从…
Java多线程 - 线程的使用
workQueue 任务队列,提交的任务的阻塞队列(BlockingQueue)。more: Java多线程 - 阻塞队列详解 DiscardOldestPolicy 抛弃最久任务策略 将工作队列中最老的(也就是下一个要执行的)任务抛弃。优先队列将会是优先级最高的 在Execu…
个人成就
文章被点赞
30
文章被阅读
17,923
掘力值
383
关注了
2
关注者
10
收藏集
1
关注标签
23
加入于
2019-04-26