java基础
流放程序员
2018年8月28日
展开
-
JAVA基础-voliate
可见性:是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。指令重排序:是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理volatile 原理:volatile 修饰的属性在修改后会直接将结果写回到主内存中volatile 防止指令重排,cpu为了提高性能,在编译代码时会将一些相同的操作放到一起执行,而volatile就会阻止这个操作对非 volatile 变量进行读写的时候,每个线程先从内存拷贝变量到CPU缓存中。如果计算机有多个CPU,每个线程可能在不同原创 2020-09-23 15:41:27 · 499 阅读 · 0 评论 -
JAVA基础-并发-CountDownLatch
今天来介绍一下CountDownLatch及其工作的原理,CountDownLatch也是AQS(AbstractQueuedSynchronizer)的子类,实现了共享功能CountDownLatch使用CountDownLatch的简单使用,主函数要等到CountDownLatch计数变为0时才会执行 private static void CountDownLatchUse(){ final CountDownLatch cd = new CountDownLatch(4);原创 2020-09-22 21:08:22 · 140 阅读 · 0 评论 -
JAVA基础-并发-线程池
线程池的核心参数int corePoolSize(核心线程数),默认1int maximumPoolSize(最大线程数),默认Integer.MAX_VALUElong keepAliveTime(线程空闲存活时间),默认 60sTimeUnit unit (存活时间单位),BlockingQueue workQueue(队列)ThreadFactory threadFactory(创建线程的工厂)RejectedExecutionHandler handler(淘汰策略), 默认Abor原创 2020-09-22 21:08:09 · 147 阅读 · 0 评论 -
JAVA基础-并发-ReentrantLock
本文介绍 ReentrantLock 及其实现原理,ReentrantLock和同步工具类的实现基础都是AQS什么是AQSAQS即是AbstractQueuedSynchronizer,一个用来构建锁和同步工具的框架,包括常用的ReentrantLock、CountDownLatch、Semaphore等。AQS没有锁之类的概念,它有个state变量,是个int类型,在不同场合有着不同含义。本文研究的是锁,为了好理解,姑且先把state当成锁。AQS围绕state提供两种基本操作“获取”和“释放”原创 2020-09-22 21:07:48 · 119 阅读 · 0 评论 -
JAVA基础-并发-线程
今天来介绍一下线程线程和进程进程是系统中正在运行的一个程序,程序一旦运行就是进程。进程是系统资源分配的独立实体,进程之间不能直接访问数据,需要通过进程间的通信,比如管道、文件、套接字等。一个进程可以拥有多个线程,线程之间可以直接访问数据线程是进程的一个实体,是进程的一条执行路径。进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同线程的状态扭转图new:新建状态runnable:进入就绪状态,这个状态并没有分配cpu资源,只是说线程已经开始执行了,但还没有c原创 2020-06-15 20:24:08 · 90 阅读 · 0 评论 -
JAVA基础-集合-介绍
说说常见的集合有哪些?Map接口和Collection接口是所有集合框架的父接口Collection接口的子接口包括:Set接口和List接口Mapt接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap、Properties等Set接口的实现类主要有:HashSet、TreeSet、LinkedHashSet等List接口的实现类主...原创 2020-09-22 20:34:12 · 74 阅读 · 0 评论 -
JAVA基础-ThreadLocal
内部类因数threadlocalMap使用的是静态内部类,所以这里也介绍一下内部类静态内部类和非静态内部类:内部类:就是我是你的一部分,我了解你,我知道你的全部,没有你就没有我。(所以内部类对象是以外部类对象存在为前提的)静态内部类:就是我跟你没关系,自己可以完全独立存在,但是我就借你的壳用一下,来隐藏自己。内部类只有是静态的,其内部类中才能有静态属性和静态方法;如果内部类非静态的,其内部类不能有静态属性和静态方法。实例化一个非静态内部类:OutClass.InnerClass inner原创 2020-09-22 20:27:38 · 131 阅读 · 0 评论