上一页 1 ··· 4 5 6 7 8 9 10 11 下一页
摘要: 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 阅读全文
posted @ 2020-02-27 09:03 Draymond 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 多线程的三要素 原子性 所有的操作要么成功,要么失败,不能中间中止 可见性 对于共享变量,有一个线程修改了其值,其他线程也能看到,使用的也是最新的值 有序性 代码按照顺序执行(只要求最终一致性)(不影响单线程的最终一致性,但会影响多线程的一致性) { int i=0; boolean b=false 阅读全文
posted @ 2020-02-19 14:52 Draymond 阅读(615) 评论(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 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 作用 1:内存可见性 强制对缓存的修改立刻写入主存 如果是写操作,会导致其他cpu的缓存失效 2:代码执行顺序 保证重排的顺序不会把后面的指令放到屏障的前面,也不会把前面的放到后面 3:不保证原子性使用场景 1:状态量标记 volatile boolean run=true; while(run){ 阅读全文
posted @ 2020-02-19 09:51 Draymond 阅读(191) 评论(0) 推荐(0) 编辑
摘要: /** * waitSet * 通过JVM虚拟机实现的,调用wait方法,会将此线程放入到wait set中,然后放弃锁(对某些资源的声明) * 1:所有的对象都会有一个wait set,用来存放调用了该对象wait方法之后进入block状态线程 * 2:线程被notify之后,并一定立即执行 * 阅读全文
posted @ 2020-02-18 13:33 Draymond 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 类的加载顺序 先执行父类的静态代码块和静态变量初始化,静态代码块和静态变量的执行顺序跟代码中出现的顺序有关。 执行子类的静态代码块和静态变量初始化。 执行父类的实例变量初始化 执行父类的构造函数 执行子类的实例变量初始化 执行子类的构造函数 单例模式:饿汉式 /** * 单例模式:饿汉式 * 类加载 阅读全文
posted @ 2020-02-17 20:53 Draymond 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 1:作用 在线程结束前触发执行的逻辑代码 应用停止发送提醒(邮件,短信,钉钉消息等);关闭一些连接等 2:使用方法 // 钩子程序 Runtime.getRuntime().addShutdownHook(new Thread(() -> { System.out.println("钩子程序:应用结 阅读全文
posted @ 2020-02-16 16:37 Draymond 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 线程的生命周期 新建(New) new Thread(); 当程序使用new关键字创建一个线程的后,该线程就是“新建”状态;此时,它与其他的java对象一样,仅仅由java虚拟机 为其分配了内存,并初始化了其成员变量值。此时的线程对象没有表现出热恩和的线程的动态特征,程序也不会执行 就绪(Runna 阅读全文
posted @ 2020-02-16 11:48 Draymond 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 1 使用对象区别 sleep的调用者是Thread,wait的调用者是所有实例对象 2 使用位置的区别 sleep在任何位置都能使用,而wait/notify/notifyAll需要在"synchronized"同步代码块中使用(wait需要一个监视器monitor) 3 是否释放资源 wait方法 阅读全文
posted @ 2020-02-16 11:36 Draymond 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 1:JVM内存结构分类 1.1:线程共享区 堆 方法区 1.2:线程独占区 程序计数器 java虚拟机栈 本地方法栈 2:程序计数器 程序计数器是一块较小的内存空间。它可以看作是“当前线程所执行的字节码的行号指示器”。 线程独占。 如果是java方法,这个程序计数器记录的是“正在执行的虚拟机字节码指 阅读全文
posted @ 2020-01-07 09:19 Draymond 阅读(98) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 下一页