Java基础学习第八天
-
线程同步方法
synchronized机制,锁住共享资源
-
死锁
多个线程互相抱着对方需要的资源,然后形成僵持 死锁避免方法:想办法破一下任意一个方法或多个条件即可避免产生死锁 产生死锁的四个必要条件: 1、互斥条件:一个资源每次只能被一个进程所使用 2、请求与保持条件:一个进程因请求资源而保持阻塞时,对已获得的资源保持不放 3、不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺 4、循环等待条件:若干进程之间行成一种头尾相接的循环关系
-
Lock锁
显式锁,需要手动开启和关闭
-
synchronized锁和lock锁的对比:
lock是显式锁(手动开启和关闭),synchronized是隐式锁,除了作用域自动释放 lock只有代码块锁,而synchronized有代码块锁和方法锁 使用lock锁,JVM将花费较少的时间来调度线程,性能更好,具有更好的拓展性 优先使用顺序:Lock>同步代码块>同步方法
-
线程协作
生产者消费者模式
-
线程池