摘要:
1:安装 https://blog.csdn.net/qq_40871363/article/details/88822117 2:常用命令 sudo mysql -u root -p service mysql stop service mysql start service mysql rest 阅读全文
摘要:
多线程的三要素 原子性 所有的操作要么成功,要么失败,不能中间中止 可见性 对于共享变量,有一个线程修改了其值,其他线程也能看到,使用的也是最新的值 有序性 代码按照顺序执行(只要求最终一致性)(不影响单线程的最终一致性,但会影响多线程的一致性) { int i=0; boolean b=false 阅读全文
摘要:
单线程下,编写在前面的代码优先于后面的代码执行unlock发生在lock后volatile修饰的变量,写操作优先于读操作(多线程条件,既有read又有write,先write保存到cache-> main memory ;read再从main memory中读取)传递规则:A优先于B,B优先于C,则 阅读全文
摘要:
作用 1:内存可见性 强制对缓存的修改立刻写入主存 如果是写操作,会导致其他cpu的缓存失效 2:代码执行顺序 保证重排的顺序不会把后面的指令放到屏障的前面,也不会把前面的放到后面 3:不保证原子性使用场景 1:状态量标记 volatile boolean run=true; while(run){ 阅读全文
摘要:
/** * waitSet * 通过JVM虚拟机实现的,调用wait方法,会将此线程放入到wait set中,然后放弃锁(对某些资源的声明) * 1:所有的对象都会有一个wait set,用来存放调用了该对象wait方法之后进入block状态线程 * 2:线程被notify之后,并一定立即执行 * 阅读全文
摘要:
类的加载顺序 先执行父类的静态代码块和静态变量初始化,静态代码块和静态变量的执行顺序跟代码中出现的顺序有关。 执行子类的静态代码块和静态变量初始化。 执行父类的实例变量初始化 执行父类的构造函数 执行子类的实例变量初始化 执行子类的构造函数 单例模式:饿汉式 /** * 单例模式:饿汉式 * 类加载 阅读全文
摘要:
1:作用 在线程结束前触发执行的逻辑代码 应用停止发送提醒(邮件,短信,钉钉消息等);关闭一些连接等 2:使用方法 // 钩子程序 Runtime.getRuntime().addShutdownHook(new Thread(() -> { System.out.println("钩子程序:应用结 阅读全文
摘要:
线程的生命周期 新建(New) new Thread(); 当程序使用new关键字创建一个线程的后,该线程就是“新建”状态;此时,它与其他的java对象一样,仅仅由java虚拟机 为其分配了内存,并初始化了其成员变量值。此时的线程对象没有表现出热恩和的线程的动态特征,程序也不会执行 就绪(Runna 阅读全文
摘要:
1 使用对象区别 sleep的调用者是Thread,wait的调用者是所有实例对象 2 使用位置的区别 sleep在任何位置都能使用,而wait/notify/notifyAll需要在"synchronized"同步代码块中使用(wait需要一个监视器monitor) 3 是否释放资源 wait方法 阅读全文