N76e003单片机内部没有EEPROM,但是可以使用 APROM模拟EEPROM功能,代码如下: eeprom.h eeprom.c ...
分类:
其他好文 时间:
2019-04-16 01:30:06
阅读次数:
182
[TOC] synchronized关键字 关键字锁住方法和 的不同之处: 关键字volatile ? 注意,对于 ,Java只保证访问该变量的时候, 访问的是最新的(即直接访问的内存,而不是拷贝),但是并不保证原子性 ,但是其也有可能出现脏数据,因为如果使用 或者 的操作(这些操作均依赖于 变量的 ...
分类:
编程语言 时间:
2019-04-15 00:51:26
阅读次数:
187
本文一大重点是源码解析,不过线程池设计思想以及作者实现过程中的一些巧妙用法是我想传达给读者的。本文还是会一行行关键代码进行分析,目的是为了让那些自己看源码不是很理解的同学可以得到参考。
线程池是非常重要的工具,如果你要成为一个好的工程师,还是得比较好地掌握这个知识。即使你为了谋生,也要知道,这基本上是面试必问的题目,而且面试官很容易从被面试者的回答中捕捉到被面试者的技术水平。
本文略长,建议在 pc 上阅读,边看文章边翻源码(Java7 和 Java8 都一样),建议想好好看的读者抽出至少 15 至 30 分钟的整块时间来阅读。当然,如果读者仅为面试准备,可以直接滑到最后的总结部分。
分类:
编程语言 时间:
2019-04-13 23:31:31
阅读次数:
129
1、直接操作内存,使用Unsafe 这个类 2、使用 getIntVolatile(var1, var2) 获取线程间共享的变量 3、采用CAS的尝试机制(核心所在),代码如下: 可以看到这个do .... while {!this.compareAndSwapInt(var1, var2, var ...
分类:
其他好文 时间:
2019-04-06 09:20:57
阅读次数:
120
1.在阅读Android源代码的时候会发现,对于一个简单的问题,这些代码也设计的非常复杂,有各种类和各种嵌套,这些代码看起来一点都不直观,为的是让代码更加容易扩展,引入和很多设计模式。当理解了这些设计模式后再去看Android源代码就不会感觉那么复杂了。 2.单例模式:在一个进程(包括一个进程的多个 ...
分类:
其他好文 时间:
2019-04-06 00:04:14
阅读次数:
135
为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。 同步的方式 1.同步方法 即有synchroniz... ...
分类:
编程语言 时间:
2019-04-04 20:29:41
阅读次数:
195
本文围绕以下几点进行阐述 1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4、redis的数据类型,以及每种数据类型的使用场景5、redis的过期策略以及内存淘汰机制6、redis和数据库双写一致性问题7、如何应对缓存穿透和缓存雪崩问题8、如何解决redis的并 ...
分类:
其他好文 时间:
2019-04-03 12:07:05
阅读次数:
152
USB 通用串行总线(Universal Serial Bus) serial ['s??r??l] adj. 连续的;连载的;分期偿还的 component [k?m'p??n?nt] adj. 组成的,构成的 n. 成分;组件;[电子] 元件 Random Access Memory (RAM)... ...
分类:
其他好文 时间:
2019-03-28 15:35:41
阅读次数:
149
[toc] 七种写法的单列模式 版本1:饿汉式 版本2:多线程可能导致多个实例 版本3:效率有待优化 版本4:Double Check可能出现空指针异常 版本5:Double Check 版本6:通过静态内部类构造 版本7:通过枚举构造 ...
分类:
其他好文 时间:
2019-03-25 14:59:09
阅读次数:
174
本文核心:线程池ThreadPoolExecutor基础梳理 一.实现多线程的方式 1.继承Thread类,重写其run方法 2.实现Runnable接口,实现run方法 3.实现Callable接口,实现call方法 由于Java的设计,只支持单继承,但是支持多实现形式,所以一般面向接口开发,Ru ...
分类:
编程语言 时间:
2019-03-21 13:09:00
阅读次数:
171