摘要: 使用线程池 背景:经常创建和销毁,使用量特别大的资源,比如并发情况下的线程,对性能影响很大 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中,可以避免频繁创建销毁,实现重复利用。类似生活中的公共交通工具 好处: 提高响应速度(减少了创建新线程的时间) 降低资源消耗(重复利用线程 阅读全文
posted @ 2021-09-30 17:28 乔治爱放屁 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 生产者消费者问题 应用场景:生产者和消费者问题 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中的产品取走消费 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,知道仓库中的产品被消费者取走为止 如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等 阅读全文
posted @ 2021-09-30 17:17 乔治爱放屁 阅读(101) 评论(0) 推荐(0) 编辑
摘要: Lock(锁) 从JDK 5.0开始,Java提供了更强大的线程同步机制-通过显示定义同步锁对象来实现同步。同步锁使用Lock对象充当 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock 阅读全文
posted @ 2021-09-30 16:27 乔治爱放屁 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 死锁 多个线程各自占有一些共享资源,并且相互等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形,某一个同步块同时拥有,两个以上对象的所时,就可能会发生死锁的问题 死锁避免的方法 产生死锁的四个必要条件: 互斥条件:一个资源每次只能被一个进程使用 请求与保持条 阅读全文
posted @ 2021-09-30 15:56 乔治爱放屁 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 同步方法 由于我们可以通过private关键字来保证数据对象只能被方法访问,所以我们只需要针对方法提出一套机制,这套机制就是synchronized关键字,它包括两种用法:synchronized方法和synchronized块 同步方法:public synchronized void metho 阅读全文
posted @ 2021-09-30 15:14 乔治爱放屁 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 线程同步 多个线程操作同一个资源 并发:同一个对象被多个线程同时操作 最天然的解决办法就是,排队,一个一个来(队列) 并发问题:处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时我们就需要线程同步,线程同步其实就是一种等待机制,多个需要同时访问此对象进入这个对象的等待池形成 阅读全文
posted @ 2021-09-30 14:50 乔治爱放屁 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 守护线程 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如,后台记录操作日志,监控内存,垃圾回收等待 setDaemon(Boolean) package com.lei;​//测试守护线程//上帝守护你public class TestDaemon { 阅读全文
posted @ 2021-09-30 11:07 乔治爱放屁 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 线程的优先级(priority) java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行 线程优先级高的资源就会多一些 线程的优先级用数字表示,范围1-10 Thread.MIN_PRIORITY = 1 Thread.MAX_PRIORI 阅读全文
posted @ 2021-09-30 10:50 乔治爱放屁 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 线程状态观测 Thread.State 线程状态。线程可以处于以下状态之一: new:尚未启动的线程处于此状态 runnable:在java虚拟机中执行的线程处于此状态 blocked:被阻塞等待监视器锁定的线程处于此状态 waiting:正在等待另一个线程执行特定动作的线程处于此状态 timed_ 阅读全文
posted @ 2021-09-29 18:13 乔治爱放屁 阅读(397) 评论(0) 推荐(0) 编辑
摘要: join join合并线程,待此线程执行完成后,在执行其他线程,其他线程阻塞 可以想象成插队 package com.lei;​//测试join方法--想象为插队public class TestJoin implements Runnable { @Override public void run 阅读全文
posted @ 2021-09-29 17:48 乔治爱放屁 阅读(35) 评论(0) 推荐(0) 编辑