多线程
ljk903402406
这个作者很懒,什么都没留下…
展开
-
Guarded Suspension
我们来看一个例子:A 在厨房做早餐B是快递员,敲门了,说你的快递来了,要求开门,那么A就需要去取快递,一会又来一个快递,那么A就需要做饭的同时还要取快递。如何去设计这个程序呢?我们来看代码实例:package com.handsome.thread2study.chapter9;/** * @author jiangkunli * @date 2020-07-14 12:32 上午 * @description 定义请求类 */public class Request {原创 2020-07-14 01:20:43 · 91 阅读 · 0 评论 -
Object是原子型吗?
我们知道所有的基本数据类型都是原子性的!比如 int x = 1;System.out.println(x);那么Object obj = obj2; // 是不是原子型的呢?答案是:是由于Object所对应的汇编指令是宽字:也就是4字节的地址,4字节的长度刚好是int的长度!...原创 2020-07-14 00:14:49 · 92 阅读 · 0 评论 -
多线程-Future设计模式
为什么要有Future:场景1: 你执行某一个IO磁盘读取方法,大批量数据读取耗时10s,你想要得到结果集,就需要等待10s【时间虚订】代码实例如下:package com.handsome.thread2study.chapter8;/** * @author jiangkunli * @date 2020-07-13 1:33 上午 * @description 同步调用测试 */public class SyncInvoker { public static v.原创 2020-07-13 02:05:02 · 84 阅读 · 0 评论 -
多线程-不可变对象设计模式
1 不可变对象一定是线程安全的2 可变对象不一定是线程安全的我们用到的哪些线程不安全的框架 servlet 不是线程安全的 struts 1.x 不是线程安全的 struts 2.x 是线程安全的接下来我们写一个简单的代码看看:package com.handsome.thread2study.chapter7;/** * @author jiangkunli * @date 2020-07-12 11:56 下午 * @de...原创 2020-07-13 00:34:06 · 126 阅读 · 0 评论 -
我的设计模式之-观察者
为什么会出现观察者模式?举个例子: 小明让小红去黑黑的屋子找钥匙!小红在找钥匙的过程中。小明一会就会问一下:“小红,钥匙找到了吗?你现在在哪里?”小红每次都要回答。这让小红很烦恼。那么如何解决这个问题? 观察者模式,小红在找钥匙的过程中,主动联系小明告知小明当前自己的行为!观察者模式:Subject:主题 也就是小红Observer:观察者 小刘每当小红有新的行为时,小红都会通知小刘。小刘就可以告诉小明了。代码如下:我们先定义一个主题:packa...原创 2020-07-08 23:28:59 · 92 阅读 · 0 评论 -
多线程3 - 并发编程(原子性、可见性、有序性)
我们来看下多核多线程是如何执行 i+1操作的主函数:i = i + 1; cache1 : i = 1 cache2 : i = 1 线程1 : main memory -> i -> cache1 [ i + 1 ] -> cache1 -> main memory ...原创 2020-07-03 00:35:50 · 112 阅读 · 0 评论 -
上一章死循环!是因为JAVA内存不一致会造成的!
1 内存分为: RAM: ROM:2 所有的运行和计算: CPU寄存器: CPU指令:CPU将执行翻译为汇编指令:MOV、JMP、ADD3 CPU执行很快,在很短时间内就会缓存到cache。导致两个cpu的缓存不一致。如果我们加了volatile关键字后,就会从主内存里去拿。这样就可以保证值永远都是一致的!...原创 2020-07-03 00:22:03 · 126 阅读 · 0 评论 -
java或者其他高级语言中的volatile
我们都知道语言在编译和执行过程中会对自身程序进行优化如下:public class Test{ private static int INIT_VALUE = 0; private final static int MAX_VALUE = 5; public static void main(String[] args) { new Thread(() -> { int localValue = INIT_VALUE;原创 2020-07-02 23:59:09 · 613 阅读 · 0 评论