线程
ff445566
秀的嘞
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程基础学习一
1.线程的五个状态 创建、就绪、运行、阻塞、终止 2.start之后并不一定是立即执行,代表的是就绪状态; 3.阻塞状态: 阻塞状态是正在运行的线程由于某种原因放弃cpu的使用权,进入就绪状态; 有三种类型: ①运行的线程执行wait方法,线程被jvm放入等待池中; ②运行的线程获取同步锁时,该同步锁被别的线程占用,线程被jvm放入同步锁中; ③运行的线程执行sleep方法或join...原创 2019-06-20 09:32:36 · 154 阅读 · 0 评论 -
线程学习之消费者生产者
一种方案: 用synchronize,+flag while判断;在生产者的时候,如果为false则进行生产 ,然后改变false为true,唤醒所有线程;如果为true,则让当前线程进入等待; 在消费者的时候,如果为true 则进行消费,然后改变true为false,唤醒所有线程;如果为false,则让当前线程进入等待; public class Resource { ...原创 2019-06-22 09:10:58 · 163 阅读 · 0 评论 -
线程学习之锁,ReentrantLock,Synchronize
一.ReentrantLock特点: 1.1 是独占锁并且是可重入的: 独占互斥的,需要手动释放锁; 可重入的,但是要释放相同次数的锁; 1.2 默认是非公平锁,也可以实现公平锁: 非公平锁:当前线程直接尝试获取锁,不管自己是不是身处队尾; 公平锁:按照队列顺序来,前面还有就等待; 创建的时候,加上参数true是公平锁,公平锁能够避免线程饥饿 1.3 可以获取锁时限等待:...原创 2019-06-22 12:09:28 · 248 阅读 · 0 评论 -
线程基础学习二
一.什么是死锁: 当两个现场都持有对方需要的资源,而双方都处于循环等待的状态; 条件是: 互斥条件 :二者之间是互斥的。当一个线程占用着资源是,另一个线程只能等待; 请求和保持条件: 需要的资源在别的线程手中时,只能等待资源得到释放 不打断:不去强制性打断; 死循环; 避免死锁的方式: 1.加超时释放; 等待一段时间之后,无法获取,进行回退,在释放已获得的锁; 缺点 :需要自己...原创 2019-06-23 15:42:16 · 171 阅读 · 0 评论 -
jvm学习
一.内存模型 堆 : 存放实例对象,堆区分为老年代和新生代; 栈: 虚拟机栈 是方法执行的内存模型 每个方法的从开始执行到执行完成,对应的都是一个栈帧从入栈到出栈的操作。栈帧是栈的基本单位,栈帧包括 局部变量区’、操作数栈、帧数据区。 局部变量表中存放的: 各种数据的基本类型,对象的引用,。 操作数栈中存放的是:临时的数据。 帧数据区中存放的是:一些数据,如常量池解析的支...原创 2019-06-24 22:23:23 · 234 阅读 · 0 评论 -
java记录一
一 问题 java类的初始化顺序: 加载 父类静态变量,静态代码块 (并列)→ 加载 子类静态变量,静态代码块 (并列)→ 加载 父类 普通代码块 普通成员变量 (并列)→ 基类构造函数 → 加载 子类普通代码块 普通成员变量 (并列) → 加载 子类构造函数 。 对方法区和永久区的理解以及它们之间的关系: 方法区:又叫静态区,存放的是class类,静态变量,静态方法...原创 2019-06-29 23:27:42 · 307 阅读 · 0 评论
分享