juc
浩丶木
这个作者很懒,什么都没留下…
展开
-
公平锁与非公平锁,可重入锁与不可重入锁
公平锁与非公平锁公平锁(Fair):加锁前检查是否有排队等待的线程,优先排队等待的线程,先来先得非公平锁(Nonfair):加锁时不考虑排队等待问题,直接尝试获取锁,获取不到自动到队尾等待首先Java中的ReentrantLock 默认的lock()方法采用的是非公平锁。公平锁的效率较低,但是不会引起线程的饿死非公平锁的效率较高,但是会引起线程的饿死可重入锁与不可重入锁广义上的可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,并且不发生死锁(前提得是同一个对象或者cla原创 2021-12-18 15:01:36 · 601 阅读 · 0 评论 -
synchronized的具体表现形式
对于普通同步方法,锁是当前实例对象。对于静态同步方法,锁是当前类的class对象对于同步方法块,锁是synchonized括号里面配置的对象原创 2021-12-18 14:40:11 · 246 阅读 · 0 评论 -
juc-lock
lock锁实现提供了比使用同步方法和语句可以获得的更广泛的锁操作。衙门允许更灵活的结构,可能具有非常不同的属性,并且可能支持多个关联的条件对象。lock提供了比synchronized更多的功能。lock与synchronized区别1.lock不是java语言内置的,synchronized是java语言的关键字,因此是内置特性。2.lock是一个类,通过这个类可以实现同步访问。3.ock和synchronized有一点非常大的不同,采用synchronized不需要用户去手动释放锁,当synch原创 2021-12-16 21:10:06 · 129 阅读 · 0 评论 -
JUC简介
JUC就是java.util.concurrent工具包的简称。这是一个处理线程的工具包。提供了许多在并发编程工程中常用的工具类,用于定义类似于线程的自定义子系统,包括线程池、异步IO、轻量级框架、还提供了多线程上下文的Collectiion的实现。wati和sleep的区别1.sleep是thread的静态方法,wait是object的方法,任何对象实例都能调用2.sleep不会释放锁,他也不需要占用锁。wait会释放锁,但调用它的前提就是当前线程占有锁。3.他们都可以被interrupted方法原创 2021-12-15 22:04:44 · 600 阅读 · 0 评论