![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发编程
LLLLLin0
自我向博客,记录自己对编程能力培养的一些点滴。
展开
-
秋招准备-Java-并发编程-ThreadLocal(六)
1.结构分析2.源码分析3.使用和实验1.ThreadLocal结构分析 1.ThreadLocal<T> ThreadLocal提供了局部变量,主要是通过这个类,将一些线程需要的,本来可能是各个线程共享的变量(Connection),或者是约定好的初始变量(Integer i=0),变成线程自己的私有变量。 即本来许多线程共享一个数据库连接Connection对象,...原创 2018-04-19 00:44:55 · 408 阅读 · 0 评论 -
秋招准备-Java-并发编程-多线程基础(一)
1.线程的五个状态2.线程图3.多线程的实现方式4.Thread常用方法1.线程的五个状态 1.新建:用new实例化一个线程对象。 2.可运行:线程对象创建后,调用start()方法,通知jvm后,等待被线程调度选中。 3.运行:可运行状态的线程被选中后,获得cpu的时间轮片,开始执行run()方法,处于运行状态。 4.阻塞:阻塞状态指线程因某种原因放弃cpu的使用权,暂停...原创 2018-04-12 03:25:14 · 198 阅读 · 0 评论 -
秋招准备-Java-并发编程-同步机制与synchronized(二)
1.线程安全的一些概念2.同步简述3.synchronized的使用与说明1.线程安全的一些概念 1.正确性 即某个类的行为与其规范完全一致,意思就是功能不能出错,使用多线程编程在带来性能提高的同时,也会由于多线程之间相互影响而导致的功能出错的情况,因此,线程安全,实际上就是确保,大到程序,小到类的方法的正确性,保证每个功能都按其设计的语义来实现,则可以说线程安全。 ...原创 2018-04-12 05:43:27 · 218 阅读 · 0 评论 -
秋招准备-Java-并发编程-显式锁Lock(三)
1.Lock接口与其方法,ReentrantLock为实现类2.Condition接口与其方法,组合ReentrantLock实现条件队列3.ReentrantReadWriterLock读写锁1.Lock接口,ReentrantLock实现类//java.util.concurrent.locks.Lock接口public interface Lock { /** * Lock实现提供...原创 2018-04-12 21:09:01 · 327 阅读 · 0 评论 -
秋招准备-Java-并发编程-Executor框架(四)
1.带返回值的线程2.Executor3.线程池作用1.带返回值的线程 1.Callable接口//java.util.concurrent.Callablepublic interface Callable<V>{ V call() throws Exception;} 和Runnable接口相同,然后可以使用return语句,可以抛出异常这点的话,就是在...原创 2018-04-13 04:05:43 · 182 阅读 · 0 评论 -
秋招准备-Java-并发编程-同步工具(七)
1.同步工具1.同步工具(java.util.concurrent包) 1.Semaphore Semaphore是计数信号量。 从概念上讲,Semaphore维护了一个许可集。比方说,定义一个有三个许可的Semaphore,那么在这个许可集下,使用acquire()方法前,会检查许可集,如果许可1,2,3都用了,那么就会阻塞acquire(),直到有一个许可可用,然后获得该许可...原创 2018-04-19 05:05:56 · 220 阅读 · 0 评论 -
秋招准备-Java-并发编程-volatile和线程安全类(八)
1.volatile2.线程安全类3.CAS1.volatile 先简单了解一下Java内存模型 1.Java内存模型 和JVM的运行时数据分区相区别,Java的内存模型是用来描述线程工作的(定义程序中各个变量的访问规则)。可以说是一个抽象概念。 其规定,所有变量(数据)存储在主内存中。(这里的变量指非线程私有的实例字段、静态字段、数组元素~) 每个线程有自己的工作内...原创 2018-04-20 14:49:02 · 189 阅读 · 0 评论 -
秋招准备-Java-并发编程-阻塞队列(五)
1.Queue框架2.生产者消费者模式与阻塞队列3.阻塞队列实现类1.Queue框架 Java的集合类提供了Queue队列的实现,可以分为四个接口来对应相应的队列功能: Queue:普通队列,头出尾进,一般用于满足FIFO先进先出功能。 Deque:双端队列,双端进出,如果需要实现LIFO后进先出的堆栈功能,优先考虑Deque的实现类,而非Stack接口。 Blocking...原创 2018-04-18 18:57:39 · 172 阅读 · 0 评论