上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 17 下一页
摘要: 本文部分摘自《Java 并发编程的艺术》 概述 任意一个 Java 对象,都拥有一个监视器方法,主要包括 wait()、wait(long timeout)、notify() 以及 notifyAll() 方法,这些方法与 synchronized 同步关键字配合,可以实现等待 - 通知模式。Con 阅读全文
posted @ 2021-03-13 13:36 低吟不作语 阅读(331) 评论(0) 推荐(1) 编辑
摘要: 本文部分摘自《Java 并发编程的艺术》 重入锁 重入锁 ReentrantLock,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁。除此之外,该锁还支持获取锁时的公平和非公平性选择 所谓不支持重进入,可以考虑如下场景:当一个线程调用 lock() 方法获取锁之后,如果再次 阅读全文
posted @ 2021-03-10 22:46 低吟不作语 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 本文部分摘自《Java 并发编程的艺术》 概述 队列同步器 AbstractQueuedSynchronize(以下简称同步器),是用来构建锁(Lock)或者其他同步组件(JUC 并发包)的基础框架,它使用了一个 int 成员变量表示同步状态,通过内置的 FIFO 队列来完成资源获取线程的排队工作 阅读全文
posted @ 2021-03-01 22:56 低吟不作语 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 前面学习过等待 - 通知机制,现在我们在其基础上添加一个超时机制,模拟从连接池中获取、使用和释放连接的过程。客户端获取连接的过程被设定为等待超时模式,即如果在 1000 毫秒内无法获取到可用连接,将会返回给客户端一个 null。设定连接池的大小为 10 个,然后通过调节客户端的线程数来模拟无法获取连 阅读全文
posted @ 2021-02-25 00:16 低吟不作语 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 本文部分摘自《Java 并发编程的艺术》 管道输入 / 输出流 管道输入 / 输出流和普通的文件输入 / 输出流或者网络输入 / 输出流不同之处在于,它主要用于线程之间的数据传输,而传输媒介为内存 管道输入 / 输出流主要包括如下四种具体实现: PipedOutputStream、PipedInpu 阅读全文
posted @ 2021-02-22 09:42 低吟不作语 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 本文部分摘自《Java 并发编程的艺术》 volatile 和 synchronize 关键字 每个处于运行状态的线程,如果仅仅是孤立地运行,那么它产生的作用很小,如果多个线程能够相互配合完成工作,则将带来更大的价值 Java 支持多个线程同时访问一个对象或者对象的成员变量,使用 volatile 阅读全文
posted @ 2021-02-21 16:30 低吟不作语 阅读(1026) 评论(0) 推荐(1) 编辑
摘要: 线程简介 1. 什么是线程? 现代操作系统在运行一个程序时,会为其创建一个进程,一个进程里可以创建多个线程。现代操作系统调度的最小单元是线程,也叫轻量级进程。这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能访问共享的内存变量。处理器在这些线程上高速切换,让使用者觉得这些线程在同时执行 2. 阅读全文
posted @ 2021-02-19 23:57 低吟不作语 阅读(452) 评论(0) 推荐(1) 编辑
摘要: 本书部分摘自《Java 并发编程的艺术》 线程通信与同步 在并发编程中,有两个需要处理的关键问题: 线程之间如何通信 线程之间如何同步 通信指线程之间以何种机制来交换信息,通信机制有两种: 共享内存:通过读 - 写内存中的公共状态进行隐式通信 消息传递:线程之间没有公共状态,线程之间必须通过发送消息 阅读全文
posted @ 2021-02-17 16:57 低吟不作语 阅读(280) 评论(0) 推荐(1) 编辑
摘要: 概述 我们知道 volatile 关键字可以保证共享变量的可见性和有序性,但不能保证原子性,要想同时满足三者,可以使用 synchronized 关键字 synchronized 是对象锁,也就是说它锁的是一个对象,适用的对象具体表现为以下三种形式: 对于普通同步方法,锁的是当前实例对象 publi 阅读全文
posted @ 2021-02-13 14:30 低吟不作语 阅读(440) 评论(1) 推荐(0) 编辑
摘要: 本书部分摘自《深入理解 Java 虚拟机第三版》 概述 前面讲过前端编译是将 Java 源代码编译成 Class 字节码,那么后端编译就对应把 Class 文件转换成与本地机器相关的二进制机器码的过程。然后 JVM 把每一条要执行的字节码交给解释器,翻译成对应的机器码,由解释器执行,Java 程序就 阅读全文
posted @ 2021-02-07 15:32 低吟不作语 阅读(408) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 17 下一页