Fork me on GitHub

03 2019 档案

摘要:◆CountDownLatch◆ 假如有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以。比如你想要买套房子,但是呢你现在手上没有钱。你得等这个月工资发了、然后年终奖发了、然后朋友借你得钱还给你了、然后再给朋友借一部分才可以买,这种场景你就可以使用CountDownLatch。 Coun 阅读全文
posted @ 2019-03-31 22:44 石玉军 阅读(216) 评论(0) 推荐(0)
摘要:生产者消费者模型具体来讲,就是在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信(解耦),生产者将消费者需要的资源生产出来放到缓冲区,消费者把从缓冲区把资源拿走消费。 在这个模型中,最关键就是内存缓冲区为空的时候消费者必须等待,而内存缓冲区满的时候,生产者必须等待。其他时候就是一边 阅读全文
posted @ 2019-03-31 22:42 石玉军 阅读(123) 评论(0) 推荐(0)
摘要:◆Fork/Jion框架可以干什么◆ 如果你要处理1万条数据,但是你的能力暂时还不够,一个简单快捷的办法就是你可以把每次只处理100条,等到处理100次之后再把所有的结果聚合起来你就处理完了这1万条数据。 Fork/Join就是是Java7提供的原生多线程并行处理框架,它的基本思想就是将大任务分割成 阅读全文
posted @ 2019-03-31 22:39 石玉军 阅读(274) 评论(0) 推荐(0)
摘要:◆CAS的概念◆ 对于并发控制来说,使用锁是一种悲观的策略。它总是假设每次请求都会产生冲突,如果多个线程请求同一个资源,则使用锁宁可牺牲性能也要保证线程安全。而无锁则是比较乐观的看待这个问题,它会假设每次访问都没有冲突,这样就提高了效率。但是事实难料、这个冲突是避免不了的,无锁也考虑到了肯定会遇到冲 阅读全文
posted @ 2019-03-31 22:31 石玉军 阅读(203) 评论(0) 推荐(0)
摘要:我们知道,线程的不安全问题,主要是由于多线程并发读取一个变量而引起的,那么有没有一种办法可以让一个变量是线程独有的呢,这样不就可以解决线程安全问题了么。其实JDK已经为我们提供了ThreadLocal这个东西。 ◆ThreadLocal基本使用◆ 当使用ThreadLocal维护变量时,Thread 阅读全文
posted @ 2019-03-28 00:01 石玉军 阅读(282) 评论(0) 推荐(0)
摘要:在系统开发时,我们经常会遇到“池”的概念。使用池一种以空间换时间的做法,通常在内存中事先保存一系列整装待命的对象,以供后期供其他对象随时调用。常见的池有:数据库连接池,socket连接池,线程池等。今天我们就来看一下线程池的概念。 ◆ Executor ◆ JDK为我们提供了一套Executor框架 阅读全文
posted @ 2019-03-27 09:10 石玉军 阅读(206) 评论(0) 推荐(0)
摘要:Java开发必须要掌握的知识点就包括如何使用锁在多线程的环境下控制对资源的访问限制 ◆ Synchronized ◆ 首先我们来看一段简单的代码: 12345678910111213141516171819 public class NotSyncDemo { public static int i 阅读全文
posted @ 2019-03-26 10:14 石玉军 阅读(905) 评论(0) 推荐(0)
摘要:创建线程的三种方法,线程的生命周期,sleep,yield,join,wait 和notify,线程组,守护线程,线程的优先级 阅读全文
posted @ 2019-03-22 09:10 石玉军 阅读(186) 评论(0) 推荐(0)
摘要:JMM的基本概念,主内存与工作内存的数据交互方式与规则。多线程中的原子性、可见性、有序性。指令重排。volatile关键字 ◆ JMM的基本概念 ◆ Java作为平台无关性语言,JLS(Java语言规范)定义了一个统一的内存管理模型JMM(Java Memory Model)。JMM规定了jvm内存 阅读全文
posted @ 2019-03-21 09:02 石玉军 阅读(183) 评论(0) 推荐(0)
摘要:同步和异步,线程和进程,并发和并行,临界资源,阻塞,死锁,饥饿,活锁,线程的并发级别 同步和异步 同步就好比打电话,通信双方,你一句我一句,一句话得不到回应就会一直问:“喂?喂?可以听到么?是不是信号不好呀”。 异步就像发短信,发完短信我就去干点别的,看个视频、玩个游戏、干啥都行,等对方给我回信息了 阅读全文
posted @ 2019-03-20 09:26 石玉军 阅读(146) 评论(0) 推荐(0)
摘要:原子性是指事务包含的所有操作要么全部成功,要么全部失败。例小王要向小李转账200元。则账要么转账成功小王账户减200元,小李账户加200元,要么执行失败,两者账户都不动。 一致性是指事务执行之前和执行之后都必须处于一致性状态。 假设转账前小王和小李的余额之和是2000元,那么不管他们之间进行了多少次 阅读全文
posted @ 2019-03-19 09:00 石玉军 阅读(159) 评论(0) 推荐(0)
摘要:最近因为一个朋友想要学习Java,在帮助他找教程的过程中回想到了我自己当年学习Java的那段岁月,故写了此篇文章总结了一下初学Java所必须要掌握的知识点,然后把一部分常见的面试题罗列出来。给予刚刚开始学习Java的同学做一个参考。 程序语言简史 最初由0,1组成的机器语言变成了简单指令的汇编语言, 阅读全文
posted @ 2019-03-18 09:10 石玉军 阅读(175) 评论(0) 推荐(0)
摘要:声明: 视频资源 15G的hapood教程《0001》 20G腾讯课堂课程汇总《0002》 92天的python 全栈开发-项目实战《0003》 Angular Vue Easy UI ExtJS前端框架视频教程《0004》 dubbo系列教程《0005》 Java8新特性与设计模式《0006》 j 阅读全文
posted @ 2019-03-13 22:48 石玉军 阅读(197) 评论(0) 推荐(0)