摘要: 1、多个线程各自占用一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或多个线程都在等待对方资源释放,都停止的情形。某一个同步块同时拥有两个以上对象的锁时,就可能会死锁。 2、死锁产生的4个必要条件(只要想办法破其中任意一个或多个条件就可以避免死锁。) 互斥条件:一个资源每次只能被一个 阅读全文
posted @ 2021-09-25 19:32 Eleanor123 阅读(50) 评论(0) 推荐(1) 编辑
摘要: 1、线程同步是一个等待机制,多个需要同时访问次对象的线程进入这个对象的等待池形成队列,等待前一个线程使用完毕,下一个线程才能使用。形成条件:队列+锁 2、由于同一个进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突,为了保证数据在方法中被访问的正确性,在访问时加入锁机制synchr 阅读全文
posted @ 2021-09-25 19:20 Eleanor123 阅读(45) 评论(0) 推荐(1) 编辑
摘要: Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行,建议在start()调度之前设置优先级。 优先级的低只是意味着获得调度的概率低,并不意味优先级低就不会被调用了,这个需要看CPU的调度。 线程的优先级用数字表示,范围从1-10。 Th 阅读全文
posted @ 2021-09-25 19:04 Eleanor123 阅读(57) 评论(0) 推荐(1) 编辑
摘要: 1、start()方法 start()方法用来启动一个线程,当调用start方法后,系统才会开启一个新的线程来执行用户定义的子任务,在这个过程中,会为相应的线程分配需要的资源。 2、run()方法 run()方法不是需要用户来调用的,当通过start方法启动一个线程之后,线程获得了CPU执行时间,便 阅读全文
posted @ 2021-09-25 18:35 Eleanor123 阅读(87) 评论(0) 推荐(1) 编辑
摘要: Lock是显示锁,手动开启和关闭锁,记得要关闭锁;Synchronized是隐式锁,出了作用域自动释放。 Lock只有代码锁,synchronized有代码块锁和方法锁。 使用lock锁,JVM将花费较少时间来调度线程,性能更好。并且具有更好可扩展性,能提供更多的子类。 优先使用顺序:lock > 阅读全文
posted @ 2021-09-05 23:05 Eleanor123 阅读(128) 评论(0) 推荐(1) 编辑
摘要: 守护线程依赖于创建它的线程,而用户线程则不依赖。 如果在main线程中创建了一个守护线程,当main方法运行完毕之后,守护线程也会随着消亡。 main方法执行完毕后,用户线程则不会消亡,用户线程会一直运行直到其运行完毕。在JVM中,像垃圾收集器线程就是守护线程。 阅读全文
posted @ 2021-09-05 22:53 Eleanor123 阅读(245) 评论(0) 推荐(1) 编辑
摘要: 1.start()方法 start()方法用来启动一个线程,当调用start方法后,系统才会开启一个新的线程来执行用户定义的子任务,在这个过程中,会为相应的线程分配需要的资源。 2.run()方法 run()方法不需要用来进行调用,当通过start方法启动一个线程后,当线程获得了CPU执行时间,便进 阅读全文
posted @ 2021-09-05 22:50 Eleanor123 阅读(89) 评论(0) 推荐(1) 编辑
摘要: 1 package day02; 2 3 public class LambdaTest { 4 5 /*lambda表达式只有一行代码的情况下可以简化 6 * 前提:函数式接口,并且只能有一个方法*/ 7 public static void main(String[] args) { 8 ILo 阅读全文
posted @ 2021-09-05 18:51 Eleanor123 阅读(90) 评论(0) 推荐(1) 编辑
摘要: 1、currentThread()方法 package day02; public class ThreadTest01 { public static void main(String[] args) { System.out.println(Thread.currentThread().getN 阅读全文
posted @ 2021-09-05 18:24 Eleanor123 阅读(172) 评论(0) 推荐(1) 编辑
摘要: 序号 方法 说明 1 public static Thread currentThread() 获取当前线程对象。 2 public final boolean isAlive() 判断线程是否处于活动状态 (线程调用start后,即处于活动状态) 3 public final void join( 阅读全文
posted @ 2021-09-05 12:55 Eleanor123 阅读(35) 评论(0) 推荐(1) 编辑