随笔分类 -  thread

多线程
摘要:作用 多线程中共享变量 https://www.cnblogs.com/skywang12345/p/3514593.html 阅读全文
posted @ 2020-03-20 10:55 Draymond 阅读(118) 评论(0) 推荐(0)
摘要:作用 可见性 内存屏障(指令重排的屏障) 注意:不保证原子性 package com.draymond.three.actomic; import org.junit.Test; import java.io.IOException; /** * AtomicInterger 测试 * * @Aut 阅读全文
posted @ 2020-03-20 10:52 Draymond 阅读(115) 评论(0) 推荐(0)
摘要:多线程的三要素 原子性 所有的操作要么成功,要么失败,不能中间中止 可见性 对于共享变量,有一个线程修改了其值,其他线程也能看到,使用的也是最新的值 有序性 代码按照顺序执行(只要求最终一致性)(不影响单线程的最终一致性,但会影响多线程的一致性) { int i=0; boolean b=false 阅读全文
posted @ 2020-02-19 14:52 Draymond 阅读(635) 评论(0) 推荐(0)
摘要:单线程下,编写在前面的代码优先于后面的代码执行unlock发生在lock后volatile修饰的变量,写操作优先于读操作(多线程条件,既有read又有write,先write保存到cache-> main memory ;read再从main memory中读取)传递规则:A优先于B,B优先于C,则 阅读全文
posted @ 2020-02-19 09:53 Draymond 阅读(115) 评论(0) 推荐(0)
摘要:作用 1:内存可见性 强制对缓存的修改立刻写入主存 如果是写操作,会导致其他cpu的缓存失效 2:代码执行顺序 保证重排的顺序不会把后面的指令放到屏障的前面,也不会把前面的放到后面 3:不保证原子性使用场景 1:状态量标记 volatile boolean run=true; while(run){ 阅读全文
posted @ 2020-02-19 09:51 Draymond 阅读(200) 评论(0) 推荐(0)
摘要:/** * waitSet * 通过JVM虚拟机实现的,调用wait方法,会将此线程放入到wait set中,然后放弃锁(对某些资源的声明) * 1:所有的对象都会有一个wait set,用来存放调用了该对象wait方法之后进入block状态线程 * 2:线程被notify之后,并一定立即执行 * 阅读全文
posted @ 2020-02-18 13:33 Draymond 阅读(264) 评论(0) 推荐(0)
摘要:类的加载顺序 先执行父类的静态代码块和静态变量初始化,静态代码块和静态变量的执行顺序跟代码中出现的顺序有关。 执行子类的静态代码块和静态变量初始化。 执行父类的实例变量初始化 执行父类的构造函数 执行子类的实例变量初始化 执行子类的构造函数 单例模式:饿汉式 /** * 单例模式:饿汉式 * 类加载 阅读全文
posted @ 2020-02-17 20:53 Draymond 阅读(154) 评论(0) 推荐(0)
摘要:1:作用 在线程结束前触发执行的逻辑代码 应用停止发送提醒(邮件,短信,钉钉消息等);关闭一些连接等 2:使用方法 // 钩子程序 Runtime.getRuntime().addShutdownHook(new Thread(() -> { System.out.println("钩子程序:应用结 阅读全文
posted @ 2020-02-16 16:37 Draymond 阅读(237) 评论(0) 推荐(0)
摘要:线程的生命周期 新建(New) new Thread(); 当程序使用new关键字创建一个线程的后,该线程就是“新建”状态;此时,它与其他的java对象一样,仅仅由java虚拟机 为其分配了内存,并初始化了其成员变量值。此时的线程对象没有表现出热恩和的线程的动态特征,程序也不会执行 就绪(Runna 阅读全文
posted @ 2020-02-16 11:48 Draymond 阅读(134) 评论(0) 推荐(0)
摘要:1 使用对象区别 sleep的调用者是Thread,wait的调用者是所有实例对象 2 使用位置的区别 sleep在任何位置都能使用,而wait/notify/notifyAll需要在"synchronized"同步代码块中使用(wait需要一个监视器monitor) 3 是否释放资源 wait方法 阅读全文
posted @ 2020-02-16 11:36 Draymond 阅读(407) 评论(0) 推荐(0)