
并发
文章平均质量分 53
InterceptWall
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java线程的6种状态
Java中线程的状态一共分为6种 图解 1. 初始态:NEW 创建(new)一个Thread对象,但还未调用start()启动线程时,线程处于初始态。 2. 运行态:RUNNABLE 在Java中,运行态包括就绪态和 运行态。 就绪态 该状态下的线程已经获得执行所需的所有资源,只要CPU分配执行权就能运行。 所有就绪态的线程存放在就绪队列中。 运行态 获得CPU执行权,正在执行的线程。 由于一个CPU同一时刻只能执行一条线程,因此每个CPU每个时刻只有一条运行态的线程。原创 2021-06-16 19:11:54 · 1610 阅读 · 5 评论 -
ThreadLocal
1. 作用 传递数据:保存每个线程绑定的数据,在需要的地方可以直接获取,避免参数直接传递带来的代码耦合 线程隔离:各线程间的数据相互隔离却又具备并发性,避免同步方法带来的性能损失 2. 内存泄漏 1. ThreadLocal造成内存泄露的前提 没有手动删除当前线程中ThreadLocalMap里的具体entry 当前线程依然在运行 综上:由于ThreadLocalMap是Thread的一个属性,所以ThreadLocal的生命周期和Thread是一样长的,如果没有手动删除不再使用的ThreadLoc原创 2021-06-11 17:15:09 · 136 阅读 · 0 评论 -
TimeUnit
1. TimeUnit枚举 java.utils.concurrent.TimeUnit 是Java枚举应用场景中最好的例子之一 枚举指定DAYS、HOURS、MINUTES,SECONDS、MILLISECONDS(毫秒)、NANOSECONDS(纳妙) 2. 可读性 使用TimeUnit代替传统Thread.sleep()将当前线程暂停 // 睡眠毫秒数,可读性非常差,不知道方法单位的情况下无法分辨 Thread.sleep(2400000); // 使用TimeUnit的枚举非常容易原创 2021-06-11 11:07:56 · 983 阅读 · 1 评论