- 博客(7)
- 问答 (2)
- 收藏
- 关注
原创 AbstractQueuedSynchronizer分析
ReentrantLock原理分析ReentrantLock中有个成员变量Sync,提供同步机制。Sync继承了AbstractQueuedSynchronizer。Sync有两种实现,公平和非公平。可以在构造ReentrantLock的时候传递一个布尔值来决定实现公平或非公平。默认为非公平。以下都是基于非公平的实现。AbstractQueuedSynchronizer维护了锁的状态,提供一个阻塞队列,保存了获得锁的线程。lock()方法当线程进行加锁的时候,先通过...
2020-06-04 18:14:11
188
原创 ThreadLocal杂记
线程隔离机制ThreadLocal原理分析前提,每个线程都会有一个自己独有的ThreadLocalMap,由ThreadLocal来维护。ThreadLocal的set()方法调用set()方法的时候,1、首先通过当前线程获取到ThreadLocalMap,在Thread这个类中是没有对ThreadLocalMap进行初始化的,所以说是由ThreadLocal来维护的。2、最开始的时候,ThreadLocalMap为null,所以需要初始化。初始化过程:将当前ThreadLocal对象和值
2020-06-04 12:15:07
197
原创 多线程杂记
Java中线程的生命周期有6种,操作系统层面有5种。线程的启动start(),调用的是本地方法start0(),JVM层面实现的。JVM调操作系统创建线程,启动线程,操作系统调用run()方法,JVM调用run()方法。操作系统通过调度算法,去调度CPU执行。执行结束后,JVM对线程进行销毁。线程的终止,线程执行结束。线程有个中断标记,默认为false,interrupt()方法改变中断标记,某些情况下可以让线程自己处理外部中断。如果线程处于阻塞状态下,interrupt()方法会唤醒线程。wait()
2020-06-03 11:32:00
156
原创 线程安全杂记
使用多线程去访问共享资源,有可能会带来数据安全性问题。线程安全性问题体现为 原子性、可见性、有序性。i++ 非原子性操作,实际上有3个指令,取值,运算,赋值。解决的方法:锁synchronized(非公平锁):可以修饰方法,代码块;锁的范围:类锁、对象锁。锁的存储:在对象头中的mark owrd,最后两位代表锁的状态,前一位为是否偏量锁。无锁(001)、偏向锁(101)、轻量级锁(00)、重量级锁(10)、GC标记(11)。对象在内存中的布局:对象头、实例数据锁的状态:偏向锁、轻量级锁、重量级
2020-06-03 11:31:42
168
原创 线程安全之可见性杂记
public static boolean flag =false; public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(()->{ int i = 0; while (!flag){ i++; } System
2020-06-03 11:31:09
143
原创 线程常用方法
Object提供的wait()、notify()、notifyAll()wait()获得锁的线程执行过程中自己调用wait(),让自己进入阻塞状态(WAITING),并且会释放锁。wait方法实际上调用的wait(0);如果在没有锁的情况下调用,会怕抛出 IllegalMonitorStateExceptionnotify()由获得锁的线程进行调用, 随机唤醒同一把锁下的一个等待线程,让被唤醒的锁有资格去抢占锁(需要等到获得锁的线程释放锁后才能抢占)。同样的,在没有锁的情况下调用,会抛出
2020-06-02 12:22:23
195
原创 初始多线程
什么是线程认识线程前,先得清楚进程的概念。进程是资源(CPU、内存等)分配的基本单位,一个进程会由一个或多个线程组成。比方说,一个应用程序运行后生成一个进程(实际上可能会有多个进程),系统就会为该进程分配CPU、内存等资源。线程是CPU调度的基本单位。进程执行任务时,实际上是将任务分配给线程去由CPU调度执行的。Java中的线程Java中线程的创建Java中创建线程的方式有三种,分别为继承Thread类、实现Runnable接口、实现Callable接口。继承Thread类,重写run()方法p
2020-06-01 16:35:50
128
空空如也
通过form表单提交的方法将数据传给java后台内部类该如何实现?
2019-03-22
freemarker如何通过一个变量取对象的属性值?
2019-03-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅