文章目录 客户端 / 服务器的例子服务器添加线程代码观察服务器端 执行的可能路径路径数量深入挖掘 了解类库Executor 框架非锁定的解决方案非线程安全类 方法之间的依赖可能破坏并发代码容忍错误基于客户代码的锁定基于服务端的锁定 提升吞吐量单线程条件下的吞吐量多线程条件下的吞吐量 死锁互斥上锁及等待无抢先机制循环等待不互斥不上锁及等待满足抢先机制不做循环等待 测试多线程代码测试线程代码的工具支持完整代码范例不使用线程的 客户端 / 服务器 代码使用线程的 客户端 / 服务器 代码 todo 客户端 / 服务器的例子 服务器 添加线程代码 观察服务器端 执行的可能路径 路径数量 深入挖掘 了解类库 Executor 框架 非锁定的解决方案 非线程安全类 方法之间的依赖可能破坏并发代码 容忍错误 基于客户代码的锁定 基于服务端的锁定 提升吞吐量 单线程条件下的吞吐量 多线程条件下的吞吐量 死锁 互斥 上锁及等待 无抢先机制 循环等待 不互斥 不上锁及等待 满足抢先机制 不做循环等待 测试多线程代码 测试线程代码的工具支持 完整代码范例 不使用线程的 客户端 / 服务器 代码 使用线程的 客户端 / 服务器 代码