自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 问答 (2)
  • 收藏
  • 关注

原创 wiki、conflunce、Blog、门户、论坛、知识库、CMS

wiki、conflunce、Blog、门户、论坛、知识库、CMS,概念理解

2021-12-08 11:28:34 319 1

原创 线程通信

线程通信:线程之间的协同,如线程执行先后顺序、获取某个线程执行的结果等。分为4类;文件共享线程1写入某个文件,线程2读取这个文件网络共享类似于文件共享共享变量线程1写入某个公共变量,线程2读取这个公共变量JDK提供的线程协调API(1)suspend/resume(Thread类)已弃用,原因是容易写出死锁的代码。在同步代码块中使用,不释放锁,容易死锁;suspend比res...

2020-01-29 14:43:28 114

原创 J.U.C包之Lock接口及其实现

锁的本质锁是对资源的一种保护和约束,抢锁是获得使用资源的资格。锁的实现原理:维护一个状态值,通过CAS操作这个状体值,操作成功得到锁,操作失败进行自旋。如轻量级锁自旋,线程是Runable状态;重量级锁自旋,线程进入entryList,是blocked状态。Lock接口lock():获取锁(不死不休)tryLock():获取锁(浅尝则止)tryLock(long time, Time...

2020-01-19 21:50:57 194

原创 线程安全之可见性问题

JMM对于同步规则的定义:对volatile变量v的写入,与所有其他线程后续对v的读同步对监视器m的解锁,与所有后续操作对于m的加锁同步理解:后续的加锁操作内容,能够看到解锁前的线程对于共享变量的修改。对每个属性写入默认值(0,false,null),与每个线程对其进行的操作同步理解:一个线程创建了有默认值的对象,后面其他线程可能读不到这个对象设置的默认值,但一定会读到初始值,而不会读...

2020-01-15 22:53:31 113

原创 线程安全之原子性问题

原子性问题:1.线程读的某个变量值失效即t1时刻读的值,在t2时刻已经被其他线程更改2.某个判断条件失效即t1时刻判断条件,在t2时刻已经被其他线程更改解决:将多个线程按照有序的方式顺序执行synchronized(互斥锁)ReentrantLock(互斥锁)AtomicInterger等原子类(CAS)CAS:属于硬件同步原语,处理器提供了基本内存操作的原子性保证理解...

2020-01-15 22:53:21 185

原创 内存屏障和CPU缓存

1.CPU缓存为了提高程序运行的性能,现代CPU在多方面对程序进行了优化。例如,利用CPU高速缓存,尽可能避免处理器访问主内存的时间开销,以提高性能。...

2020-01-01 14:39:42 172

原创 线程中止

不正确的方式Stop:中止线程,并且清除监控器锁的信息,但是可能导致线程安全问题,JDK不推荐使用Destroy:JDK并没有实现该方法以下代码:package com.study.hc.thread.chapter1.thread;public class StopThread extends Thread { private int i = 0, j = 0; @O...

2020-01-01 09:47:30 85

原创 线程状态

1. 线程状态线程有6个状态,在Java中通过Thread下的一个枚举类Java.lang.Thread.State可以获取,分别是:New:处于新建且还未启动的线程状态Runnable:线程就绪状态Blocked:线程阻塞等待监视器锁定的线程状态,一般都处于等待锁状态Waiting:线程等待状态,需要由其他线程唤醒,如生产者-消费者模型。常见方法,Object.wait()、Thre...

2019-12-30 20:42:34 83

原创 Java程序运行原理分析

1. JVM 简介java源码被编译器成class字节码,然后由JVM运行的时候进行处理,下面一部分主要是JVM根据不同的操作系统进行的适配。线程独占:每个线程都会有它独立占据的空间,随线程生命周期而创建和销毁线程贡献:所有线程都能访问这块内存数据,随虚拟机或者GC创建和销毁方法区:用来存储加载的类的信息、常量、静态变量、编译后的代码等东西的。方法区在1.7以前把它叫做永久代,1.8之后...

2019-12-30 20:17:15 181

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除