
多线程
Mordle_
知道的越多,不知道的越多
展开
-
创建线程三种方法总结
package Thread.Thread3; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.FutureTask; public class ThreadTest { public static void main(String[] args)原创 2021-10-22 20:36:53 · 82 阅读 · 0 评论 -
线程通信+线程池
线程通信生产者消费者问题解决方式 生产者消费者问题 这是一个线程同步问题,生产者和消费者共享同一个资源,并且生产者二号消费者之间相互依赖,互为条件。 在生产者消费者问题中,仅有synchronized是不够的 synchronized可阻止并发更新同一个共享资源,实现了同步 synchronized不能用来实现不同线程之间的消息传递(通信) Java提供了几个方法解决线程之间的通信问题 方法名作用 wait()表示线程一直等待,知道其他线程通知,与sleep不同(不释放锁),会释放锁原创 2021-10-22 20:18:45 · 168 阅读 · 0 评论 -
线程同步+锁
线程同步含义形成条件:队列+锁锁 含义 处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这是后我们就需要线程同步,线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用。 形成条件:队列+锁 锁 由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问时的正确性,在访问时加入锁机制synchronized,当前一个线程获得对象的排它锁,独占资源,其他线程必须等待原创 2021-10-20 21:22:03 · 518 阅读 · 0 评论 -
守护(daemon)线程
守护线程含义测试 含义 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如,后台记录操作日志,监控内存,垃圾回收等待。。 测试 package com.Thread; public class ThreadDaemon { public static void main(String[] args) { //创建用户线程 God god =new God(); You you=new You();原创 2021-10-18 15:08:59 · 84 阅读 · 0 评论 -
线程优先级
线程优先级1.含义2. 默认优先级3.使用方法4.注意5.测试 1.含义 java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行,默认都是5。 2. 默认优先级 线程的优先级用数字表示,范围从1-10 Thread.Min_PRIORITY=1; Thread.Max_PRIORITY=10; Thread.NORM_PRIORITY=5; 3.使用方法 getPriority() setPriority(int xxx) 优先级的设定建议在原创 2021-10-18 14:16:12 · 187 阅读 · 0 评论 -
线程的5种状态
线程方法线程休眠(sleep)线程礼让(yield)线程强制执行(join)观测线程状态 new-》就绪状态 -》运行状态-》阻塞状态-》dead 线程休眠(sleep) 模拟网络延时,放大问题的发生性 import java.text.SimpleDateFormat; import java.util.Date; public class SleepTest { public static void main(String[] args) { //获取系统当前时间原创 2021-10-17 21:01:12 · 104 阅读 · 0 评论 -
代理模式介绍
代理模式1.介绍2.静态代理2.1优缺点2.2结婚案例 1.介绍 代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 2.静态代理 2.1优缺点 优点:可以在不修改目标对象的前提下扩展目标对象的功能。 缺点:冗余。由于代理对象要实现与目标对象一致的接口,会产生过多的代理类。不易维护。一旦接口增加方法,目标对象与代理对象都要进行修改。 2.2结婚案例 lass StaticProxy{ pub原创 2021-10-16 16:07:08 · 83 阅读 · 0 评论 -
并发问题之龟兔赛跑
为了方便理解,自己敲了一边代码,记录 b站 狂神笔记。 /* 多线程 方法1:继承Thread类,重写run()方法,调用start方法 方法2.实现Runnable接口,重写run()方法,new一个Thread方法,放进Runnable的对象,调用start方法 一般推荐第二种,能通过继承实现多个对象的同步 */ //龟兔赛跑小案例 public class ThreadTest implements Runnable{ String winner; @Override p原创 2021-10-14 19:56:46 · 93 阅读 · 0 评论