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