摘要:
线程池 1. 背景 创建/销毁线程需要消耗系统资源,线程池可以复用已创建的线程 控制并发的数量,并发数量过多可能会导致资源大量消耗而造成崩溃 可以对线程做统一管理 2. 思路 提前创建好多个线程并放入线程池中,使用时直接获取,用完再放回池中。这样可以避免频繁的创建销毁、实现重复利用。类似生活中的 阅读全文
posted @ 2021-08-02 17:24
冷火凉烟
阅读(34)
评论(0)
推荐(0)
摘要:
一、生产者消费者问题 1. 问题 假设仓库中只能放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中的产品取走消费 如果仓库中没有产品,则生产者将产品放入仓库。否则停止生产并等待,直到仓库中的产品被消费者取走为止 如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再 阅读全文
posted @ 2021-08-02 17:23
冷火凉烟
阅读(31)
评论(0)
推荐(0)
摘要:
Lock 锁 1. 概要 从 JDK5 开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用 Lock 对象充当 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源访问的工具 锁提供了对共享资源的独占访问,每次只能有一个线程 阅读全文
posted @ 2021-08-02 17:21
冷火凉烟
阅读(92)
评论(0)
推荐(0)
摘要:
死锁 1. 原因 多个线程同时被阻塞,其中一个或全部都在等待某个资源被释放。由于线程被无限期的阻塞,因此程序无法正常终止。如图线程A占有资源1,线程B占有资源2,双方同时申请对方的资源,就会互相等待而进入死锁状态。 例: public class DeadLock { public static 阅读全文
posted @ 2021-08-02 17:20
冷火凉烟
阅读(36)
评论(0)
推荐(0)
摘要:
守护(Daemon)线程 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不必等待守护线程执行完毕 使用setDaemon()方法将线程设置为守护线程(默认为用户线程) 守护线程的默认优先级比较低 如:后台日志、监控内存、垃圾回收等等 例: public class TestDae 阅读全文
posted @ 2021-08-02 17:19
冷火凉烟
阅读(34)
评论(0)
推荐(0)
摘要:
一、并发与并行 并发:同一时间段内,多个任务都在执行。CPU可以把执行时间分成若干份,每个线程执行一段时间后记录当前工作状态 并行:单位时间内多个任务同时执行 二、线程同步 注: 锁的对象一定要是属性有增删改的对象!!! 所谓线程同步并不是使线程同时执行,而是将线程排队!!! 1. 形成条件:队列 阅读全文
posted @ 2021-08-02 17:19
冷火凉烟
阅读(43)
评论(0)
推荐(0)
摘要:
一、线程优先级 Java 提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行 线程优先级用数字标识,范围从1~10 Thread.MIN_PRIORITY = 1; Thread.MAX_PRIORITY = 10; Thread.NORM_P 阅读全文
posted @ 2021-08-02 17:18
冷火凉烟
阅读(52)
评论(0)
推荐(0)
摘要:
一、线程状态 操作系统中,线程被视为轻量级的进程,因此操作系统的线程状态与操作系统的进程状态是一致的 1. 线程五大状态 创建状态 Thread t = new Thread() 线程对象一旦创建就进入到了新生状态 就绪状态 当调用start() 方法,线程会进入就绪状态,但不意味着立即执行 运行状 阅读全文
posted @ 2021-08-02 17:17
冷火凉烟
阅读(87)
评论(0)
推荐(0)
摘要:
静态代理模式 静态代理是多线程底部的原理,在 Java 中线程的设计就使用了静态代理设计模式,其中自定义线程类及Thread类都是实现了Runnable接口。 在创建子线程的时候,传入了自定义线程类的引用,再通过调用start()方法,调用自定义线程对象的run()方法。实现了线程的并发执行 阅读全文
posted @ 2021-08-02 17:15
冷火凉烟
阅读(52)
评论(0)
推荐(0)
摘要:
一、创建方式 线程的创建有三种方式: 继承Thread类 实现Runnable接口 实现Callable接口 注:线程开启不一定立即执行,由CPU调度决定 1. 继承Thread类 继承Thread类创建线程可分为以下几步: 自定义线程类继承Thread类 重写run() 方法,编写线程执行体 创建 阅读全文
posted @ 2021-08-02 17:14
冷火凉烟
阅读(41)
评论(0)
推荐(0)
摘要:
一、进程和线程的定义 1. 进程 进程是执行程序的一次从创建到消亡的过程。程序本身只是指令和数据的有序集合,是一个静态概念。而进程是一个动态的概念,是系统资源分配的单位。 注:一个进程只能对应一个程序,而一个程序可以对应多个进程 2. 线程 线程是一个比进程更小的执行单位,一个进程在执行过程中可以产 阅读全文
posted @ 2021-08-02 17:08
冷火凉烟
阅读(129)
评论(0)
推荐(0)

浙公网安备 33010602011771号