1. 同步方法用synchronized关键字修饰方法。 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。 2. 同步代码块用synchronized关键字修饰语句块。被该关键字修饰的语句块会自动被加上内置锁,从 ...
分类:
编程语言 时间:
2019-08-31 23:29:09
阅读次数:
102
原文链接:http://www.cnblogs.com/dolphin0520/p/3920373.html volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下 ...
分类:
其他好文 时间:
2019-08-28 12:41:00
阅读次数:
82
u boot从nand 启动时的问题解决记录 问题描述 : 使用u boot 1.1.6版本u boot移植到JZ2440开发板上,当前已经能够从Nor启动,但是不能从Nand正常启动(u boot大小为95.8k,已经超过的2440从Nand启动时所能拷贝的4k大小),当前代码中只具备从Nor启动 ...
分类:
其他好文 时间:
2019-08-21 13:25:30
阅读次数:
107
Volatile 字面的意思时易变的,不稳定的。在C#中也差不多可以这样理解。 编译器在优化代码时,可能会把经常用到的代码存在Cache里面,然后下一次调用就直接读取Cache而不是内存,这样就大大提高了效率。但是问题也随之而来了。 在多线程程序中,如果把一个变量放入Cache后,又有其他线程改变了 ...
分类:
其他好文 时间:
2019-08-15 12:33:41
阅读次数:
75
java并发包中的并发List 5.1CopeOnWriteArrayList 并发包中的并发List只有CopyOnWriteArrayList,该类是一个线程安全的arraylist,对其进行的修改操作都是在底层的一个复制数组上进行的,也就是使用了写时复制策略。 该类的结构: 问题: 何时初始化 ...
分类:
编程语言 时间:
2019-08-10 21:36:37
阅读次数:
121
对象:对象是类的一个实例,有属性和方法。例如,狗是一个对象,属性有:颜色、名字、品种;方法有:跑,蹦,吃等。 类:是一个模板,它描述的一类对象的行为和状态。 方法:某个行为,一类对象的行为。 属性:某型性质。 实例变量:每个对象具有的、独特的实例变量,对象的状态由这些实例变量的值所决定。 例子: J ...
分类:
编程语言 时间:
2019-07-30 15:33:10
阅读次数:
138
参考博客:https://www.cnblogs.com/xdecode/p/8948277.html 内存模型:每一个线程有一个工作内存和主存独立,工作内存存放主存中变量的值的拷贝 当数据从主内存复制到工作存储时,必须出现两个动作:第一,由主内存执行的读(read)操作;第二,由工作内存执行的相应 ...
分类:
其他好文 时间:
2019-07-21 10:37:39
阅读次数:
86
一、Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。 Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值 ...
分类:
编程语言 时间:
2019-07-17 09:38:46
阅读次数:
90
1、前言 定时任务在任何系统中都非常重要,如:订单48小时自动完成,每日重新给会员送优惠券,游戏中每隔半小时给玩家添加体力等等。 对于小型系统我们可以用quartz和spring task实现定时任务,这样都任务存在如下几个任务: 1)单点问题,如果任务服务器挂了,定时任务就挂了; 2)如果任务服务 ...
分类:
其他好文 时间:
2019-07-09 12:08:52
阅读次数:
423
1.volatile仅能使用在变量级别,synchronized则可以使用在变量、方法、类级别上。 2.volatile仅仅能实现变量修改可见性,并不能保证原子性,synchronized可以实现变量的修改可见性和原子性。 3.volatile不会造成线程阻塞,synchronized可能会造成线程 ...
分类:
其他好文 时间:
2019-06-26 10:55:06
阅读次数:
116