java并发编程
编程界的彭于晏
这个作者很懒,什么都没留下…
展开
-
乐观锁和悲观锁
1.乐观锁和悲观锁简介 1.1 乐观锁 总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。 1.2 悲观锁  ...原创 2019-12-26 14:11:26 · 140 阅读 · 0 评论 -
重入锁
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized(重量级) 和 ReentrantLock(轻量级)等等 ) 。这些已经写好提供的锁为我们开发提供了便利。 重入锁,...原创 2019-12-26 11:24:00 · 98 阅读 · 0 评论 -
Java线程池
文章目录1.使用线程池的好处2.线程池的作用3.Executor 框架3.1 简介3.2 Executor 框架结构(主要由三大部分组成)3.2.1 任务(Runnable /Callable)3.2.2 任务的执行(Executor)3.2.3异步计算的结果(Future)3.3 Executor 框架的使用示意图4.ThreadPoolExecutor类简单介绍(重要)5.线程池的创建方式5....原创 2019-12-20 16:36:19 · 257 阅读 · 0 评论 -
Volatile关键字
1.什么是Volatile ThreadLocal可见性也就是说一旦某个线程修改了该被volatile修饰的变量,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,可以立即获取修改之后的值。 Thr...原创 2019-12-19 15:20:05 · 109 阅读 · 0 评论 -
Threadlocal
文章目录1.什么是Threadlocal2.ThreadLocal的接口方法3.ThreadLocal示例4.ThreadLocal 内存泄露问题5.ThreadLocal原理 1.什么是Threadlocal ThreadLocal提高一个线程的局部变量,访问某个线程拥有自己局部变量。 &...原创 2019-12-19 13:38:05 · 158 阅读 · 0 评论 -
多线程死锁
1.什么是死锁? 死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 2.死锁产生的原因 1.因为系统资源不足。 2.进程运行推进的顺序不合适。 3.资源分配不当。 产生死锁的条件有四个: 1.互斥条件:所谓互斥就是进程在某一时间内独占资源。 2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 3.不剥夺条...原创 2019-12-18 16:03:31 · 184 阅读 · 0 评论 -
多线程线程安全问题
1.为什么有线程安全问题? 当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。 经典案例——抢火车票:需求现在有100...原创 2019-12-13 15:44:00 · 311 阅读 · 0 评论 -
多线程快速入门
1.线程与进程 1.1何为进程 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 如下图所示,在 windows 中通过查看任务管理器的方式,我们就可以清楚看到 window 当前运行的进程(.exe 文件的运行)。 1.2何...原创 2019-12-13 13:26:38 · 115 阅读 · 0 评论