并发编程
Java技术践行者
让我们一起在开发这条路,默默深耕,用技术改变生活
展开
-
ScheduledExecutorService
来解决效率与定时任务的功能,主要作用是可以将定时任务与线程池功能结合使用1:ScheduledExecutorService executor =Executors.newSingleThreadScheduledExecutor();newSingleThreadScheduledExecutor() 在 JDK 的源码里实例化 new ScheduledThreadPoolE...原创 2020-03-12 15:43:28 · 206 阅读 · 0 评论 -
TheadLocal
一:ThreadLocal的核心机制1:每个Thread线程内部都有一个Map。2:Map里面存储线程本地对象(key)和线程的变量副本(value)Thread内部的Map是由ThreadLocal维护的,由ThreadLocal负责向map获取和设置线程的变量值。所以对于不同的线程,每次获取副本值时,别的线程并不能获取到当前线程的副本值,形成了副本的隔离,互不干扰get(...原创 2020-03-12 15:42:58 · 331 阅读 · 0 评论 -
ExecutorService参数设置优化
参数的设置跟系统的负载有直接的关系,下面为系统负载的相关参数:tasks,每秒需要处理的的任务数(针对系统需求)threadtasks,每个线程每钞可处理任务数(针对线程本身)responsetime,系统允许任务最大的响应时间,比如每个任务的响应时间不得超过2秒。corePoolSize系统每秒有tasks个任务需要处理理,则每个线程每钞可处理threadtasks个任...原创 2020-03-12 15:42:15 · 1878 阅读 · 0 评论 -
ExecutorService
ExecutorService 是Excutor 的子接口,在内部添加了比较多的方法。 AbstractExecutorService抽象类 是它的唯一子实现类。ThreadPoolExecutor是 AbstractExecutorService 子类一:Executors 工厂类创建线程池 (有4种不同的线程池对象):1:通过Executors类的newCachedThreadPool...原创 2020-03-12 15:41:25 · 302 阅读 · 0 评论 -
CompletableFuture区别
Future,FutureTask,CompletionService,CompletableFuture看着两篇就够啦!!!!!!https://blog.csdn.net/f641385712/article/details/83580886https://www.cnblogs.com/dennyzhangdd/p/7010972.html...原创 2020-03-12 15:33:56 · 284 阅读 · 0 评论 -
ScheduledExecutorService
来解决效率与定时任务的功能,主要作用是可以将定时任务与线程池功能结合使用1:ScheduledExecutorService executor =Executors.newSingleThreadScheduledExecutor();newSingleThreadScheduledExecutor() 在 JDK 的源码里实例化 new ScheduledThreadPoolE...原创 2020-03-12 15:32:35 · 213 阅读 · 0 评论 -
ReentrantLock重入锁
ReentrantLock是实现Lock接口的一个类,在ReentrantLock中引用了AbstractQueuedSynchronizer的子类,所有的同步操作都是依靠AbstractQueuedSynchronizer(队列同步器)实现.特点:1:支持重入性,表示能够对共享资源能够重复加锁,即当前线程获取该锁再次获取不会被阻塞。(注:synchronized隐式支持重入性,通过...原创 2019-06-20 15:35:35 · 80 阅读 · 0 评论 -
Synchronized
线程同步:synchronized:1. 修饰一个代码块,被修饰的代码块称为同步语句块,作用的对象是调用这个 括起来的代码块的对象;2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象3. 修饰一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象4. 修饰一个类,其作用的范围是synchronized后面括号括...原创 2019-06-20 15:36:32 · 150 阅读 · 0 评论 -
Volatile
volatile是变量修饰符,其修饰的变量具有可见性可见性也就是说一旦某个线程修改了该被volatile修饰的变量,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,可以立即获取修改之后的值。在Java中为了加快程序的运行效率,对一些变量的操作通常是在该线程的寄存器或是CPU缓存上进行的,之后才会同步到主存中,而加了volatile修饰符的变量则是直接读写主存。...原创 2019-06-20 15:37:34 · 86 阅读 · 0 评论