摘要: java从诞生开始就明智的选择了内置对多线程的支持,这使得java语言相比同一时期的其他语言具有明显的优势。线程作为操作系统调度的最小单元,多个线程能够同时执行,这将显著提升程序的性能,在多核环境中表现的更加明显。但是,过多的创建线程和对线程的不当管理也容易造成问题。本章将着重介绍java并发编程的 阅读全文
posted @ 2019-08-15 00:34 333- 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 3.1 java内存模型的基础 3.1.1并发编程模型的两个关键问题 在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指两个线程 之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并 阅读全文
posted @ 2019-08-11 22:25 333- 阅读(156) 评论(0) 推荐(0) 编辑
摘要: java代码在编译后都会编程java字节码,字节码被类加载器加载到jvm里,jvm执行字节码,最终需要转化为汇编指令在CPU上执行,java中所使用的并发机制依赖于jvm的实现和CPU的指令。 2.1 volatile的应用 在多线程并发编程中synchronized和volatile都扮演着重要角 阅读全文
posted @ 2019-08-04 15:17 333- 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 1.1上下文切换 单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停的切换线程执行。 CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是在切换之前会保存上一 阅读全文
posted @ 2019-08-03 15:54 333- 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 1.Synchronized的原理 https://www.cnblogs.com/zaizhoumo/p/7700161.html Java的每一个对象都可以作为锁,当一个线程访问时,首先要获取锁对象,退出代码块或抛出异常时才会释放锁。 常见的三种用法: 普通方法, 静态方法 同步代码块 普通方法 阅读全文
posted @ 2019-07-23 14:47 333- 阅读(843) 评论(0) 推荐(0) 编辑
摘要: 1.ArrayList和Vector的区别? 1.vector 的所有方法都是同步(Synchronized)的,是线程安全的(thread-safe)的,而ArrayList是线程不安全的,线程安全是会影响性能,ArrayList 比vector的性能好 2.当Vector或ArrayList元素 阅读全文
posted @ 2019-07-16 19:34 333- 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 1.Algorithm https://leetcode-cn.com/problems/implement-strstr/ 2.Review https://redis.io/topics/memory-optimization 1.聚合类型的特殊转码 使用 redis.conf 来调整特殊编码类 阅读全文
posted @ 2019-07-14 21:30 333- 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 1.fiaalize()方法什么时候被调用,析构函数(finalization)的目的是什么? 1.当一个对象 gc roots 不可达时,在下一个垃圾回收周期并尝试回收该对象。如果这个对象重写了finalize()方法,并在这个方法中成功自救(将自身赋值某个引用),那么该对象不会回收,如果这个对象 阅读全文
posted @ 2019-07-13 00:05 333- 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 1.Algorithm https://leetcode-cn.com/problems/remove-element/solution/yi-chu-yuan-su-by-leetcode/ 2.Review 3.Tip https://blog.csdn.net/qq_35619711/arti 阅读全文
posted @ 2019-07-08 10:56 333- 阅读(88) 评论(0) 推荐(0) 编辑
摘要: @component public class FooServiceImpl implements FooService{ @Autowired private JdbcTemplate jdbcTemplate; @Override @Transactional public void insertRecord(){ jdbcTemp... 阅读全文
posted @ 2019-07-03 21:36 333- 阅读(138) 评论(0) 推荐(0) 编辑