![](https://img-blog.csdnimg.cn/20201019142546315.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Thread
文章平均质量分 76
JAVA高并发
沉默的hello world
hello world!
展开
-
JAVA高并发之线程池
1. ThreadPoolExecutor1: 初始化线程池ThreadPoolExecutor threadPoolExecutor=new ThreadPoolExecutor(2,//核心线程书4,30,TimeUnit.SECONDS,new ArrayBlockingQueue(10),Executors.defaultThreadFactory(),new ThreadPoolExecutor.DiscardPolicy());2. ScheduledThreadPo原创 2020-10-19 09:19:31 · 154 阅读 · 0 评论 -
JAVA高并发之线程间通信(wait,notify)解析
原创 2020-10-19 09:19:40 · 90 阅读 · 0 评论 -
JAVA高并发之常用API解析
1. 线程sleep()休眠1: sleep() 在线程进入休眠后,最重要的也行就是不会放弃当前monitor 锁的所有权Thread.sleep()指定当前线程进入休眠状态.>2: 使用TimeUtil替代sleep(),使用上更优雅。>3: sleep()会在指定时间内释放cpu资源。package com.mxli.concurrent;import java.util.concurrent.TimeUnit;public class ThreadSleepDem原创 2020-10-19 09:19:50 · 326 阅读 · 0 评论 -
JAVA多线程之守护线程
1. 守护线程守护线程是比较特殊特殊的线程,能够自动结束生命周期的特性。GC就是一个守护线程,如果主程序已经结束,但是GC还在运行在游戏中,有多个线程,计算角色金钱,经验如果是是一个非守护线程的话,角色已经下线,而线程还在运行,经验,金钱不断增加,游戏会有很大的bug.设置守护线程的方法为setDaemon(true),需要在线程启动前进行设置为守护线程。例子:package com.mxli.concurrent;public class ConditionDemo { pub原创 2020-10-16 10:23:36 · 435 阅读 · 1 评论 -
JAVA高并发之JMH使用
package JMHExp01;import org.openjdk.jmh.annotations.*;import org.openjdk.jmh.runner.Runner;import org.openjdk.jmh.runner.RunnerException;import org.openjdk.jmh.runner.options.Options;import org.openjdk.jmh.runner.options.OptionsBuilder;import java.ut原创 2020-10-15 16:42:21 · 337 阅读 · 0 评论 -
JAVA高并发之synchronized详解
1. synchronized (java并发编程中的元老,重量级锁)synchronized 提供了原创 2020-10-15 16:07:14 · 258 阅读 · 0 评论 -
JAVA高并发之volatile详解
volatile 介绍1. 缓存的概念,为什么要有缓存?在未采用缓存的之前,CPU都是直接访问主内存、虽然随着CPU制造工艺的提升,刷新频率的提高,内存受限于制造工艺和制造成本的限制,提升空间较小,导致了CPU与主线程访问频率过高,通过传统的FSB直接访问内存的方式会导致CPU资源受到很大的限制,为了降低CPU吞吐量,在CPU和主存中间加了缓存的设计。2. 缓存运行方式以及缓存不一致性的问题在程序运行的时候,会将所需要的共享数据从主内存中拷贝一份放置缓存中,计算结束之后、在刷新之主内存中。多个线程原创 2020-10-15 16:03:00 · 113 阅读 · 0 评论 -
JAVA高并发之线程的概念
进程与线程的区别?进程是一个执行单元每个进程内至少有一个线程、线程是进程的执行路径,线程也称为轻量级进程线程的状态(生命周期)NEW ----创建一个线程、此时线程尚未被启动,未调用start()方法RUNNABLE -----调用了start()方法、等待CPU轮询调度轮询此任务线程RUNNING -----此时CPU轮询到此线程、线程开始执行BLOCKED -----此时线程进入锁状态、调用了Thread.sl..原创 2020-10-15 10:34:20 · 140 阅读 · 0 评论 -
JAVA高并发之并发容器
链表链表包含两个属性、数据本身以及指向下一个节点的引用或者指针BlockingQueue(阻塞队列),对元素数量存在界限、当队列已经满的时候、对队列进行写入的线程将被阻塞挂起、如果数据为空的时候、也被阻塞挂起,BlockingQueue 内部以来显示锁和Condition,所以此队列为线程安全的。 1:ArrayBllockingQueue--基于数组实现的FIFO阻塞队列,在构造的时候,需要指定最大的元素数量, 阻塞式写方法 put() ..原创 2020-10-15 10:31:57 · 118 阅读 · 0 评论 -
JAVA高并发之并发包工具类
CountDownLatch 是一个同步助手、允许一个或多个线程等待一系列其他线程的执行结束,在初始化CountDownLatch的时候,需要注意countDownLatch的特点 1:CountDownLatch ch=new CountDownLatch(5); 需要顶一个不小于0的计数器 2:CountDownLatch是同时并行多个程序,而不是并发 3:CountDownLatch是一次性的,不能重复使用 4:CountDownLatch在使用的时候,每个线程完成后需要对当前计数..原创 2020-10-14 18:57:55 · 408 阅读 · 0 评论 -
JAVA高并发之原子并发包详解
1.在多线程中保证数据的原子性,一般用法有synchronized,lock显示锁,atomic原子包,在执行多线 程程序中性能如何?JMH示例如下package com.mxli.concurrent.atomicdemo;import org.openjdk.jmh.annotations.*;import org.openjdk.jmh.runner.Runner;import org.openjdk.jmh.runner.RunnerException;import org.openj原创 2020-10-12 15:59:52 · 385 阅读 · 0 评论