07_04_服务停止 2022-05-15 2023-04-03 编程语言 / Java 12 分钟读完 (大约1819个字)服务停止应用程序中通常会创建拥有多个线程的服务,比如线程池。 一般来说,服务的生命周期基本都比线程的生命周期要长。 当要停止服务时,服务拥有的这些线程也需要同时结束,所以服务应该要提供相应的生命周期方法,比如 shutdown()、shutdownNow() 这样的。 java, 并发编程 阅读更多
07_02_线程中断 2022-05-15 2023-04-03 编程语言 / Java 5 分钟读完 (大约788个字)线程中断中断线程,指的是向线程发起一个中断信号。 其目的是为了中断线程,对象是线程,而不是线程内运行的任务。 java, 并发编程 阅读更多
07_03_中断响应 2022-05-15 2023-04-03 编程语言 / Java 12 分钟读完 (大约1789个字)中断响应在取消任务和中断线程中,中断都起到了很大作用: 取消任务,最合理的方式就是使用中断 中断线程,线程收到中断后作何处理 但是有个问题: 任务和线程都能接收中断请求,那怎么区分? 也就是,中断响应由谁来负责? java, 并发编程 阅读更多
06_任务的执行 2022-05-15 2023-04-03 编程语言 / Java 18 分钟读完 (大约2661个字)任务的执行一、在线程中执行任务1.1 串行执行串行执行,是指所有任务都在单个线程中串行地执行。 123456789class SingleThreadWebServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(80); while (true) { Socket connection = serverSocket.accept(); handleRequest(connection); } }} 串行执行,一般来说吞吐率或速响应性都比较差。 java, 并发编程 阅读更多
05_基础构建模块 2022-05-15 2023-04-03 编程语言 / Java 11 分钟读完 (大约1605个字)基础构建模块一、同步容器 同步容器类都是线程安全的,比如 Vector 和 HashTable 实现线程安全的方式是:将它们的状态都封装起来,所有对外接口都是同步方法 对容器状态的访问都串行化,保证每次只有一个线程访问容器 能保证单个操作是线程安全的,但是复合操作是不能保证线程安全的 常见的不安全的复合操作包括:迭代、跳转、条件运算 java, 并发编程 阅读更多
07_01_任务取消 2022-05-15 2023-04-03 编程语言 / Java 9 分钟读完 (大约1298个字)任务取消任务、线程、服务、应用程序之间的关系: 任务是最小的执行单元 任务在线程中执行 线程在服务(比如线程池服务)中运行 服务在应用程序(JVM)中运行 java, 并发编程 阅读更多
04_对象的组合 2022-05-15 2023-04-03 编程语言 / Java 14 分钟读完 (大约2039个字)对象的组合一、设计线程安全的类1.1 设计过程1.1.1 收集对象状态 收集类对象的所有状态 如果对象中引用了其他对象,那么该对象的状态也包括引用对象的状态 如果发布了某个可变对象的引用,那么就不应该算作对象的状态 java, 并发编程 阅读更多
03_对象的共享 2022-05-15 2023-04-03 编程语言 / Java 25 分钟读完 (大约3739个字)对象的共享一、共享对象可能存在的问题? 多个线程同时访问或修改共享对象时,可能会出现冲突,即原子性问题 一个线程修改对象状态后,其他线程未必能够看到发生的变化,即内存可见性 java, 并发编程 阅读更多
02_线程安全性 2022-05-15 2023-04-03 编程语言 / Java 4 分钟读完 (大约588个字)线程安全性一、什么是线程安全? 当多个线程访问某个类时,这个类始终能表现出正确的行为,就称这个类是线程安全的 线程安全类,一般都封装了必要的同步机制,使用时无需额外进行同步 java, 并发编程 阅读更多
管程 2022-04-10 2023-07-16 操作系统 / 基础 5 分钟读完 (大约798个字)管程一、是什么?管程,是由一组数据以及定义在这组数据上的操作组成的模块或软件包。 管程的组成: 局部于管程内部的数据说明,对外而言是共享数据 对该数据结构进行操作的一组数据 对局部于管程的共享数据设置初始值的语句 管程的特性: 操作系统, 管程 阅读更多