![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发&多线程&JUC
文章平均质量分 76
扯着暑假的尾巴,学习一边Java并发,并将自己的笔记和感悟记录在博客
Damon爱吃西兰花
博客已经暂停使用
展开
-
Monitor结构和原理
Monitor被翻译为监视器或者管城。每个Java对象都可以关联一个Monitor对象,如果如果使用 synchronized 给对象上锁(重量级)之后,该对象头的 Mark Word 中就被设置指向 Monitor 对象的指针。1. Java对象头以32位虚拟机为例,普通对象和数组对象所占的长度是不同的。普通对象:数组对象:相较于普通对象,多出32位用来存储数组长度MarkWord:表示对象的线程锁状态,另外还可以用来配合GC、存放该对象的hashCode;KlassWo.原创 2021-09-15 20:45:48 · 819 阅读 · 1 评论 -
synchronized的使用和线程八锁
1. 前言临界资源:一次仅允许一个进程使用的资源就称为临界资源临界区:访问临界资源的代码块竞态条件:多个线程在临界区内执行,由于代码的执行序列不同而导致结果无法预测,称之为发生了竞态条件。为了避免临界区的竞态条件的发生,我们可以采用阻塞式的解决方案和非阻塞式的解决方案。阻塞式的方案就是使用synchronized。synchronized:对象锁,保证了临界区内代码的原子性,采用互斥的方式让同一时刻至多只有一个线程能持有对象锁,其它线程获取这个对象锁时会阻塞,保证拥有锁的线程可以安全的执行临原创 2021-09-15 20:10:04 · 143 阅读 · 0 评论 -
线程的六种状态——从Java API层面出发
1 API源码在API种 java.lang.Thread.State枚举出来了六种线程状态,下面为截取代码。public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a runnable thread. A thread in t.原创 2021-09-02 17:37:18 · 125 阅读 · 0 评论 -
线程的五种状态——从操作系统角度出发
如果从操作系统的角度出发的话,线程的状态一共可以描述为五种:初始态,可运行,运行态,阻塞态,终止态。初始状态这时线程创建,开辟好工作空间,但是还没有和操作系统的线程关联Thread t = new Thread();可运行状态t.start();start 方法被调用,线程立即进入了就绪状态,表示这个线程具有了运行的条件,但是还没有开始运行,这就是就绪状态。需要等待CPU的时间片。进入可运行状态的四种状态:1. 调用Start()方法2. 本来处于阻塞状态,..原创 2021-09-02 14:59:46 · 717 阅读 · 0 评论 -
Java线程的创建运行和相关方法
1 线程的创建创建线程的方式分为:创建线程类和匿名内部类start()方法实际上是给CPU注册当前线程,并且触发run()方法; 线程的执行必须是调用start()方法,如果调用run()方法的话就变成了普通类的执行; 应该先创建子线程,再执行主线程的任务,不然子线程会是最先执行完的,而结束。1.1 直接使用Thread创建构造器方法:public Thread(), public Thread(String name)public class ThreadTesting {原创 2021-09-02 11:44:01 · 141 阅读 · 0 评论 -
关于并发的非常基础的基础概念知识——线程进程,并发并行,同步异步
一、进程和线程对比认识进程是系统进行资源分配的基本单位,线程是被系统独立调度和分配的基本单位。进程可以看作是程序的一个实例,线程是属于进程的,一个进程可以包含多个线程。线程本身不拥有系统资源,只拥有一些必不可少的资源,但是他和同属于一个进程的线程共享进程的全部资源。进程的特征:并发性,异步性,动态性,独立性,结构性线程的作用:使多道程序更好的并发执行,提高资源利用率和系统吞吐量,增强操作系统的并发性能。进程基本上是相互独立的,而线程存在于进程内,是进程的一个子集。进程拥有共享的资原创 2021-08-27 14:09:54 · 119 阅读 · 0 评论