摘要: 进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。 线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。 程序,进程,线程: 在操作系统中运行的程序就是进程,比如你的QQ、播放器、游戏、IDE 阅读全文
posted @ 2020-05-11 19:51 我有满天星辰 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 线程池的概念: ​ 线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。 线程池的 阅读全文
posted @ 2020-05-11 18:30 我有满天星辰 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。 生产者消费者模式 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题 阅读全文
posted @ 2020-05-11 18:03 我有满天星辰 阅读(2) 评论(0) 推荐(0) 编辑
摘要: Lock(锁) 从JDK5.0开始,Java提供了更强大的线程同步机制——通过显示定义同步锁对象来实现同步,同步锁使用Lock对象充当java.util.concurrent.locks.Lock接口是控制多个线程对共享线程进行了访问的工具。锁提供了对共享资源的独占访问,每次只有一个线程对Lock对 阅读全文
posted @ 2020-05-11 14:25 我有满天星辰 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 死锁 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。 化妆死锁案例: package test; //死锁:多个线程互相抱着对方需要的资源,然后形成僵持 public class DeadLock { public 阅读全文
posted @ 2020-05-11 14:01 我有满天星辰 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 线程同步 由于我们可以通过 private 关键字来保证数据对象只能被方法访问,所以我们只需要针对方法提供一套机制,这套机制就是 synchronized 关键字,它包括两种用法:synchronized 方法 和 synchronized 块 同步方法: public synchronized v 阅读全文
posted @ 2020-05-11 13:59 我有满天星辰 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 案例:线程安全的集合 package test; import java.util.ArrayList; import java.util.List; //线程安全的集合 public class UnsafeList { public static void main(String[] args) 阅读全文
posted @ 2020-05-11 00:32 我有满天星辰 阅读(39) 评论(0) 推荐(0) 编辑