2022年1月22日
摘要: 一、创建线程的多种方式 四种 1、JDK1.5 之前,传统的方式有两种 继承 Thread 类 实现 Runnable 接口 2、JDK1.5 之后,新增了两种 使用 Callable 接口 通过线程池获取线程 二、Callable 接口 目前我们学习了有两种创建线程的方法-一种是通过创建 Thre 阅读全文
posted @ 2022-01-22 22:08 格物致知_Tony 阅读(175) 评论(0) 推荐(0)
摘要: 一、什么是死锁 首先我们先来看看死锁的定义:“死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。”那么我们换一个更加规范的定义:“集合中的每一个进程都在等待只能由本集合中的其他进程才能引发的事件,那么该组进程是死锁的。” 阅读全文
posted @ 2022-01-22 17:43 格物致知_Tony 阅读(117) 评论(0) 推荐(0)
摘要: 一、可重入锁 可重入就是说某个线程已经获得某个锁,可以再次获取锁而不会出现死锁。 可重入锁,意味着线程可以进入它已经拥有的锁的同步代码块。 Java 中的 synchronized(隐式)与Lock(显式)都是可重入锁。 二、示例 1、synchronized 同步代码块 public class 阅读全文
posted @ 2022-01-22 17:42 格物致知_Tony 阅读(157) 评论(0) 推荐(0)
摘要: 一、案例 1、售票案例 //第一步 创建资源类,定义属性和和操作方法 class LTicket { //票数量 private int number = 30; //创建可重入锁 private final ReentrantLock lock = new ReentrantLock(); //卖 阅读全文
posted @ 2022-01-22 15:57 格物致知_Tony 阅读(51) 评论(0) 推荐(0)
摘要: 一、情景一 1、代码 class Phone { public synchronized void sendSMS() throws Exception { System.out.println(" sendSMS"); } public synchronized void sendEmail() 阅读全文
posted @ 2022-01-22 14:22 格物致知_Tony 阅读(266) 评论(0) 推荐(0)