摘要: lock 概述: 本质上Lock仅仅是一个接口 Lock有三个实现类 ReentrantLock:表示重入锁 它是唯一一个实现了Lock接口的类 重入锁指的是线程在获得锁之后 再次获取该锁不需要阻塞 而是直接关联一次计数器增加重入次数 ReentrantReadWriteLock:重入读写锁 它实现 阅读全文
posted @ 2021-08-12 10:11 熏晴微穗 阅读(72) 评论(0) 推荐(0) 编辑
摘要: synchronized 概述: synchronized是Java中的关键字 可以给方法和代码块加锁 (synchronized底层好像是通过C实现的) 可以保证方法或者代码块在运行时 同一时刻只有一个线程可以进入到临界区(临界区就是synchronized锁住的区域) Java中每一个对象都可以 阅读全文
posted @ 2021-08-12 10:08 熏晴微穗 阅读(59) 评论(0) 推荐(0) 编辑
摘要: Java锁概念 在Java中 保证线程安全的方案分为两种:同步、无同步、 造成线程安全问题的原因就是:多线程情况下共享变量的写操作不安全 所以解决方案也就是针对共享的变量进行的 同步共享变量 或者 不同步共享变量 同步: 互斥(阻塞):互斥是实现同步的一种手段 属于悲观的并发策略 多线程并发访问共享 阅读全文
posted @ 2021-08-12 10:06 熏晴微穗 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 继承Thread类 示例如下: public static void main(String[] args) { System.out.println("主线程启动:"+Thread.currentThread().getName()); new Thread02().start(); } publ 阅读全文
posted @ 2021-08-12 10:03 熏晴微穗 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 并发、并行、同步、线程安全 **并发:**并发的关键是你有处理多个任务的能力 不一定要同时 **并行:**并行的关键是你有同时处理多个任务的能力 **同步:**通过控制和调度 来保证多线程中共享资源的数据一致性 线程安全:用来描绘一段代码 指在并发的情况之下 该代码经过多线程使用 线程的调度顺序不影 阅读全文
posted @ 2021-08-12 10:01 熏晴微穗 阅读(27) 评论(0) 推荐(0) 编辑
摘要: **概述:**HashMap 键值对、无序、非线程安全、效率高 HashMap允许null值(key和value都允许) key不能重复 数据结构 在 1.7及之前是:数组加链表 1.8是:数组加链表/红黑树 优缺点: 数组 -- 查询效率 O(1) 能直接通过hash值找到位置 不用做其他操作 不 阅读全文
posted @ 2021-08-12 09:57 熏晴微穗 阅读(40) 评论(0) 推荐(0) 编辑
摘要: **介绍:**在介绍Collection框架之前 先说明一下Collection框架中比较重要的一个概念 迭代 在Collection顶层接口里就继承了Iterable 所以所有的Collection集合容器都是可迭代的 **概念:**迭代的概念其实就是指 可以一个个的拿到集合容器中的元素 实现了I 阅读全文
posted @ 2021-08-06 17:11 熏晴微穗 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 概述:底层数据结构是链表 双向链表 非同步的 LinkedList是一个基于链表实现的双向队列 所以链表也是双向链表 特性:查改慢、增删快、非线程安全、效率高 注意: 除了基础的List接口的功能外 在LinkedList中还维护了 头尾两个对象 可以直接对头尾进行操作 而LinkedList也继承 阅读全文
posted @ 2021-08-05 15:22 熏晴微穗 阅读(45) 评论(1) 推荐(0) 编辑
摘要: 概述:底层数据结构是数组 ArrayList是一个动态数组 它允许任何符合规则的元素插入甚至包括null 特性:查改快、增删慢、非线程安全、效率高 容量:ArrayList 的初始容量是(10) ArrayList 存在扩容机制 ArrayList 在1.8之前都是直接创建一个长度10的数组 1.8 阅读全文
posted @ 2021-08-04 15:47 熏晴微穗 阅读(40) 评论(0) 推荐(0) 编辑