摘要: CyclicBarrier和CountDownLatch 都位于java.util.concurrent 这个包下 一、CountDownLatch用法 CountDownLatch类只提供了一个构造器: 然后下面这3个方法是CountDownLatch类中最重要的方法: CountDownLatc 阅读全文
posted @ 2018-10-29 20:13 青春暮年 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 原子性、稳定性和持久性实现原理 原子性、稳定性和持久性是通过redo 和 undo 日志文件实现的,不管是redo还是undo文件都会有一个缓存我们称之为redo_buf和undo_buf。同样,数据库文件也会有缓存称之为data_buf。 4.1 undo 日志文件 undo记录了数据在事务开始之 阅读全文
posted @ 2018-10-29 14:23 青春暮年 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 程序的运行,其本质上,是对系统资源(CPU、内存、磁盘、网络等等)的使用。如何高效的使用这些资源是我们编程优化演进的一个方向。今天说的线程池就是一种对CPU利用的优化手段。 网上有不少介绍如何使用线程池的文章,那我想说点什么呢?我希望通过学习线程池原理,明白所有池化技术的基本设计思路。遇到其他相似问 阅读全文
posted @ 2018-10-29 11:22 青春暮年 阅读(430) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal是什么 首先,它是一个数据结构,有点像HashMap,可以保存"key : value"键值对,但是一个ThreadLocal只能保存一个,并且各个线程的数据互不干扰。 在线程1中初始化了一个ThreadLocal对象localName,并通过set方法,保存了一个值寻梦,同时 阅读全文
posted @ 2018-10-29 10:45 青春暮年 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 有三种使用线程的方法: 实现 Runnable 接口; 实现 Callable 接口; 继承 Thread 类。 实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以说任务是通过线程驱动从而执行 阅读全文
posted @ 2018-10-29 09:16 青春暮年 阅读(155) 评论(0) 推荐(0) 编辑