2021年2月15日
摘要: 一、创建线程新增方式一:实现 Callable 接口 1、Callable概述 与使用 Runnable 相比,Callable 功能更强大些 ① 相比 run() 方法,可以有返回值; ② 方法可以抛出异常; ③ 支持泛型的返回值; ④ 需要借助 FutureTask 类,比如获取返回结果; 2、 阅读全文
posted @ 2021-02-15 23:22 格物致知_Tony 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 一、线程间通信 概念:多个线程在处理同一资源,但是处理的动作(线程的任务)却不相同。 例如:使用两个线程打印 1-100。线程1, 线程2 交替打印,怎么实现呢? 为什么要处理线程间通信: 多个线程并发执行,在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成同一件任务,并且希望它们有规 阅读全文
posted @ 2021-02-15 22:09 格物致知_Tony 阅读(686) 评论(0) 推荐(0) 编辑
摘要: 一、线程的安全问题 1、问题的发现 当有多个线程同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,这就是线程安全的。 下面通过一个案例来演示线程的安全问题。 模拟电影票买票的过程,其中,一共有100张票。下面来模拟电影票的售 阅读全文
posted @ 2021-02-15 18:13 格物致知_Tony 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 一、线程的状态 JDK 中用 Thread.State 类定义了线程的几种状态: 当线程被创建并启动以后,并没有直接进入执行状态,还有其他的状态。 在线程的生命周期中, java.lang.Thread.State 这个枚举中给出了六种线程状态: 线程之间的状态转换: 二、线程的生命周期 想要实现多 阅读全文
posted @ 2021-02-15 15:33 格物致知_Tony 阅读(246) 评论(0) 推荐(0) 编辑