Loading

随笔分类 -  多线程-java

摘要:多线程——一些概念... 指令重排序 ​ 指令是CPU可以完成的动作,比如传送,运算,控制,比较等等。一行简单的代码往往需要多条指令(执行多个动作)来实现。如下图所示: ​ 左边的C代码多了一行 int b = a + 1; ​ 但是汇编代码多出了三行,可以看出有两种类型的动作:移动(传送)和相加 阅读全文
posted @ 2020-11-18 23:18 齐玉 阅读(81) 评论(0) 推荐(0)
摘要:多线程——volatile 定义 【在JVM 1.2之前,Java的内存模型实现总是从主存读取变量】 ​ 1.(适用于Java所有版本)volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。 ​ 2.(适用于Java5及其之后的版本)volatile 的读和写创建了 阅读全文
posted @ 2020-11-17 21:54 齐玉 阅读(298) 评论(0) 推荐(0)
摘要:多线程——JMM多线程共享变量的不可见性 示例1: public class Demo1 { private static boolean flag = false; public static void main(String[] args) { // 线程1 读flag的值 new Thread 阅读全文
posted @ 2020-11-15 22:00 齐玉 阅读(196) 评论(0) 推荐(0)
摘要:多线程——引言 售票场景 ​ 目前只有一个窗口开放售票(A地→B地),所有人都排队购票,这是单线程; ​ 购票人数增加,为了减轻第一个窗口的压力,缩短整体购票时间,开放第二个窗口售票,这是多线程。 ​ 「对于一个任务,单线程执行时间过长。启用多线程,每个线程分担的任务量都变小了,多个线程同时工作,整 阅读全文
posted @ 2020-11-15 19:53 齐玉 阅读(77) 评论(0) 推荐(0)