摘要: 六.线程同步(并发) Lock锁: 通过显式定义锁实现同步。 java.util.concurrent,locks.lock接口是控制多个线程对共享资源进行访问的工具。锁可以对共享资源的独占访问,每次只能有一个线程对lock对象加索,线程开始访问共享资源前先获得lock对象。 ReentrantLo 阅读全文
posted @ 2021-10-02 19:44 酥炸小黄瓜 阅读(207) 评论(0) 推荐(0)
摘要: 六.线程同步(并发) 死锁: 多个线程各自占有一些共有资源,相互等待其他线程占有的资源,导致两个或以上线程都在等待对方释放资源,都停止执行的情况。 某一个同步块同时有两个以上对象的锁时,可能发生死锁问题。 产生死锁条件: 一个资源每次只能被一个线程使用 一个线程因请求资源而阻塞,对已获得资源保持不放 阅读全文
posted @ 2021-10-02 17:21 酥炸小黄瓜 阅读(28) 评论(0) 推荐(0)
摘要: 六.线程同步(并发) 1.synchronized方法 控制对对象的访问,每个对象都有一把锁,每个synchronized方法都必须获得调用该方法的锁才能执行,方法一旦执行,就独享该锁,使用完该对象后释放锁,其他线程才能获得锁,继续执行。 public synchronized void metho 阅读全文
posted @ 2021-10-02 16:45 酥炸小黄瓜 阅读(70) 评论(0) 推荐(0)
摘要: 六.线程同步(并发) 处理多线程问题时,多个线程访问或修改同一个对象(并发)(可理解为现实世界中的抢票),此时就需要线程同步。 所谓线程同步,就是多个需要同时访问同一个对象的线程进入这个对象的等待池形成队列,等待队列前面的线程使用完毕,后面的线程再接着使用。同时为了保证对象访问的正确性,引入了锁机制 阅读全文
posted @ 2021-10-02 16:03 酥炸小黄瓜 阅读(147) 评论(0) 推荐(0)
摘要: 五.守护线程 线程分为用户线程和守护线程,java虚拟机伴随所有用户线程执行完毕而结束,不等待守护线程执行。典型应用如GC。 public class Daemon { public static void main(String[] args) { Dae d = new Dae(); User 阅读全文
posted @ 2021-10-02 13:22 酥炸小黄瓜 阅读(32) 评论(0) 推荐(0)
摘要: 四.线程优先级 java提供一个线程调度器监控程序中启动后进入就绪状态的所有线程,调度器按照优先级决定线程执行顺序。(优先级只表示获得调度的概率,并不是优先级低的不被调用,最终还是取决于CPU的调度) 优先级用数字表示,1~10,默认为5。 Thread.MIN_PRIORITY = 1 Threa 阅读全文
posted @ 2021-10-02 12:51 酥炸小黄瓜 阅读(74) 评论(0) 推荐(0)