JDK5.0新增线程创建的方式 本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)b站视频 新增方式一:实现Callable接口。 — JDK 5.0新增123456789101112131415161718192021222324252627282930313233343536373839404142//1.创建一个实现Callable的实现类class NumThread impleme 2023-01-08 03_java基础编程 > 08_多线程 #java
线程通信 本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)b站视频 1.线程通信涉及到的三个方法: wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器。 notify():一旦执行此方法,就会唤醒被wait的一个线程。如果有多个线程被wait,就唤醒优先级高的那个(优先级一致,就随机唤醒)。 notifyAll():一旦执行此方法,就会唤醒所有被w 2023-01-08 03_java基础编程 > 08_多线程 #java
死锁问题 本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)b站视频 1.死锁的理解:不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁 2.说明:1、出现死锁后,不会出现异常,不会出现提示,只是所的线程都处于阻塞状态,无法继续2、我们使用同步时,要避免出现死锁。 3.举例:123456789101112131415161 2023-01-08 03_java基础编程 > 08_多线程 #java
线程安全的单例模式(懒汉式) 本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)b站视频 使用同步机制将单例模式中的懒汉式改写为线程安全的。 12345678910111213141516171819202122232425262728class Bank{ private Bank(){} private static Bank instance 2023-01-08 03_java基础编程 > 08_多线程 #java
线程的同步机制 本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)b站视频 1.背景例子:创建个窗口卖票,总票数为100张.使用实现Runnable接口的方式 1.问题:卖票过程中,出现了重票、错票 –>出现了线程的安全问题 2.问题出现的原因:当某个线程操作车票的过程中,尚未操作完成时,其他线程参与进来,也操作车票。 3.如何解决:当一个线程a在操作ticket的时 2023-01-08 03_java基础编程 > 08_多线程 #java
Thread的生命周期 本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)b站视频 # Java线程的6种状态及切换(透彻讲解) 图示:说明:1.生命周期关注两个概念:状态、相应的方法2.关注:状态a–>状态b:哪些方法执行了(回调方法) 某个方法主动调用:状态a–>状态b3.阻塞:临时状态,不可以作为最终状态 死亡:最终状态。 2023-01-08 03_java基础编程 > 08_多线程 #java
Thread类中的常用方法 本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)b站视频 Thread类中的常用的方法: start():启动当前线程;调用当前线程的run() run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中 currentThread():静态方法,返回执行当前代码的线程 getName():获取当前线程的名字 setName( 2023-01-08 03_java基础编程 > 08_多线程 #java
创建多线程的两种方式 本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)b站视频 方式一:继承Thread类的方式: 创建一个继承于Thread类的子类 重写Thread类的run() –> 将此线程执行的操作声明在run()中 创建Thread类的子类的对象 通过此对象调用start():①启动当前线程 ② 调用当前线程的run() 说明两个问题:问题一:我们启动一个线程 2023-01-08 03_java基础编程 > 08_多线程 #java
并行与并发 本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)b站视频 01. 单核CPU与多核CPU的理解单核CPU,其实是一种假的多线程,因为在一个时间单元内,也只能执行一个线程的任务。例如:虽然有多车道,但是收费站只有一个工作人员在收费,只有收了费才能通过,那么CPU就好比收费人员。如果某个人不想交钱,那么收费人员可以把他“挂起”(晾着他,等他想通了,准备好了钱,再 2023-01-08 03_java基础编程 > 08_多线程 #java
程序、进程、线程的理解 本笔记来源于:尚硅谷Java零基础全套视频教程(宋红康2023版,java入门自学必备)b站视频 01. 程序(programm)概念:是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。 02. 进程(process)概念:程序的一次执行过程,或是正在运行的一个程序。说明:进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域 03. 线程(thread)概念:进程 2023-01-08 03_java基础编程 > 08_多线程 #java