上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页
摘要: java.util.concurrent(J.U.C)大大提高了并发性能,AQS 被认为是 J.U.C 的核心。 CountdownLatch 用来控制一个线程等待多个线程。 维护了一个计数器 cnt,每次调用 countDown() 方法会让计数器的值减 1,减到 0 的时候,那些因为调用 awa 阅读全文
posted @ 2018-10-31 11:37 青春暮年 阅读(822) 评论(0) 推荐(0) 编辑
摘要: 当多个线程可以一起工作去解决某个问题时,如果某些部分必须在其它部分之前完成,那么就需要对线程进行协调。 join() 在线程中调用另一个线程的 join() 方法,会将当前线程挂起,而不是忙等待,直到目标线程结束。 对于以下代码,虽然 b 线程先启动,但是因为在 b 线程中调用了 a 线程的 joi 阅读全文
posted @ 2018-10-31 11:22 青春暮年 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 前言 不管是在面试还是实际开发中 volatile 都是一个应该掌握的技能。 首先来看看为什么会出现这个关键字。 内存可见性 由于 Java 内存模型(JMM)规定,所有的变量都存放在主内存中,而每个线程都有着自己的工作内存(高速缓存)。 线程在工作时,需要将主内存中的数据拷贝到工作内存中。这样对数 阅读全文
posted @ 2018-10-31 10:45 青春暮年 阅读(238) 评论(0) 推荐(0) 编辑
摘要: Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问,第一个是 JVM 实现的 synchronized,而另一个是 JDK 实现的 ReentrantLock。 synchronized 1. 同步一个代码块 public void func() { synchronized (this) 阅读全文
posted @ 2018-10-31 10:14 青春暮年 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 四、中断 一个线程执行完毕之后会自动结束,如果在运行过程中发生异常也会提前结束。 InterruptedException 通过调用一个线程的 interrupt() 来中断该线程,如果该线程处于阻塞、限期等待或者无限期等待状态,那么就会抛出 InterruptedException,从而提前结束该 阅读全文
posted @ 2018-10-30 11:44 青春暮年 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 三、基础线程机制 Executor Executor 管理多个异步任务的执行,而无需程序员显式地管理线程的生命周期。这里的异步是指多个任务的执行互不干扰,不需要进行同步操作。 主要有 6种 Executor: newCachedThreadPool:创建可缓存的线程池,如果线程池中的线程在60秒未被 阅读全文
posted @ 2018-10-30 11:31 青春暮年 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 深入理解线程通信 前言 开发中不免会遇到需要所有子线程执行完毕通知主线程处理某些逻辑的场景。 或者是线程 A 在执行到某个条件通知线程 B 执行某个操作。 可以通过以下几种方式实现: 等待通知机制 等待通知模式是 Java 中比较经典的线程通信方式。 两个线程通过对同一对象调用等待 wait() 和 阅读全文
posted @ 2018-10-30 10:39 青春暮年 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 一、线程状态转换 新建(New) 创建后尚未启动。 可运行(Runnable) 可能正在运行,也可能正在等待 CPU 时间片。 包含了操作系统线程状态中的 Running 和 Ready。 阻塞(Blocking) 等待获取一个排它锁,如果其线程释放了锁就会结束此状态。 无限期等待(Waiting) 阅读全文
posted @ 2018-10-30 10:27 青春暮年 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 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) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页