- 博客(6)
- 收藏
- 关注
原创 ReentrantLock源码解读
ReentrantLock源码分析这次来阅读一下ReentrantLock的源码,简单阅读,只看几个重要的方法。首先ReentrantLock实现了Lock接口,Lock接口没啥好说的,提供了几个必须实现的方法。public interface Lock { void lock(); void lockInterruptibly() throws InterruptedEx...
2020-02-01 21:57:23
451
原创 手写一个ReentrantLock锁
手写ReentrantLock最近学习了Java语言中锁相关知识,看了一下ReentrantLock源码,自己手写了一个ReentrantLock。ReentrantLock是一个可重入锁,并且在源码中通过构造函数可以使其在公平锁和非公平锁之间转换。可重入锁即当前线程可以在不释放锁的情况下多次获取锁,但是释放锁的次数应与获取锁的次数相同,否则会抛出IllegalMonitorStateExc...
2020-02-01 18:18:07
3223
原创 线程终止的方法
学习心得线程终止的3种方法:stop(),interrupt(),使用标志位。总结1.stop()方法会直接杀死线程不论执行到哪里,破坏了线程的安全性,已停止使用。public class StopThread extends Thread{ public int i=0; public int j=0; @Override public void run(...
2020-02-01 17:38:27
564
原创 线程状态
线程状态线程状态分为6种,分别为新建(New),可运行状态(Runnable),不带超时的等待状态(Waiting),带超时的等待状态(TimedWaiting),阻塞状态(Blocked),结束状态(Terminate)。进入各个状态的方法...
2020-02-01 17:36:54
402
原创 Java运行时数据区
JAVA运行时数据区线程共享区1.方法区存储类信息,常量,静态变量,编译后的代码。2.堆内存存放对象实例,堆内存满了则抛出OutOfMemoryError异常。线程独占区1.虚拟机栈由多个栈帧组成,每个方法对应一个栈帧,栈帧包含:局部变量表,操作数栈,动态链接,方法返回地址等信息。栈内存最大为1M,超出则抛出StackOverflowError异常。2.本地方法栈存储虚拟机运行...
2020-02-01 17:32:22
388
原创 Java实现8种排序算法
8种排序算法冒泡排序,选择排序,插入排序,快速排序,希尔排序,归并排序,堆排序,基数排序源码地址:https://github.com/wonder-code/myWonder/tree/master/basis/src/main/java/com/zl/algorithm/sort冒泡排序时间复杂度 平均:o(n^2),最差:o(n^2)空间复杂度 o(1) 冒泡排序核心是将...
2020-02-01 17:21:44
2423
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅