14_条件队列 2022-05-15 2023-04-03 编程语言 / Java 31 分钟读完 (大约4711个字)条件队列一、状态依赖性管理1.1、前提条件类中一般有很多依赖于状态的方法,只有满足某些条件时才能正常执行。 比如说,在有界队列中的方法: put 方法调用前,必须满足 !isFull() 条件 take 方法调用前,必须满足 !isEmpty() 条件 像 !isFull()、!isEmpty() 这种被操作依赖的状态条件,称为前提条件。 java, 并发编程 阅读更多
13_显式锁 2022-05-15 2023-04-03 编程语言 / Java 5 分钟读完 (大约692个字)显式锁一、内置锁的局限 无法中断一个正在等待内置锁的线程 无法实现非阻塞结构的加锁规则 无法实现公平性的锁等待 java, 并发编程 阅读更多
12_并发程序测试 2022-05-15 2023-04-03 编程语言 / Java 17 分钟读完 (大约2616个字)并发程序测试一、并发程序测试1.1 并发测试的挑战 潜在错误的发生具有不确定性,是随机的 1.2 并发测试的类型1.2.1 安全性测试 安全性:不发生任何错误的行为 安全性测试:通常采用测试不变性条件和后验条件的形式,即判断某个类的行为在并发测试下,其状态是否与其规范一致 java, 并发编程 阅读更多
11_性能问题 2022-05-15 2023-04-03 编程语言 / Java 6 分钟读完 (大约955个字)性能问题一、性能优化1.1 目的 提高程序的整体运行性能 1.2 原则 始终把安全性放在第一 程序正确后,再想办法提高运行速度 java, 并发编程 阅读更多
10_活跃性问题 2022-05-15 2023-04-03 编程语言 / Java 4 分钟读完 (大约641个字)活跃性问题一、死锁1.1 死锁条件 互斥:资源是互斥的,只能被一个线程持有 占用且等待:线程占有一些资源后,在等待其他资源,等待过程中不会释放自己已占用的资源 不可剥夺:不可以强行剥夺已被线程占有的资源 循环等待:占用资源的线程在循环等待其他占用资源的线程释放资源 java, 并发编程 阅读更多
08_02_串行算法的并行化 2022-05-15 2023-04-03 编程语言 / Java 5 分钟读完 (大约787个字)串行算法的并行化一、并行化要求 递归的每次迭代都是独立的 将每个迭代拆分成任务并发执行 java, 并发编程 阅读更多
08_01_线程池的使用 2022-05-15 2023-04-03 编程语言 / Java 13 分钟读完 (大约1943个字)线程池的使用一、默认线程池的弊端并非所有任务都能适用于默认的执行策略,比如: 依赖性任务 线程封闭的任务 长时间运行的任务 使用线程本地变量的任务 这类任务往往需要指定特定的执行策略,否则可能会产生活跃性问题。 java, 并发编程 阅读更多
07_05_程序关闭 2022-05-15 2023-04-03 编程语言 / Java 5 分钟读完 (大约807个字)程序关闭JVM 既可以正常关闭,也可以强行关闭。 正常关闭方式有: 最后一个“正常(非守护)”线程结束时 调用了 System.exit() 方法 通过其他特定于平台的方法(比如发送 SIGNAL 信号,或键入 CRTL + C) java, 并发编程 阅读更多
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, 并发编程 阅读更多