![Avatar notebook default](https://cdn2.jianshu.io/assets/default_avatar/avatar-notebook-default-640f7dde88592bdf6417d8ce1902636e.png)
一个进程在运行态时调用sleep(),进入等待态,睡眠结束以后,并不是直接回到运行态,而是进入就绪队列,要等到其他进程放弃时间片后才能重新进入运...
synchronized用的锁是存储在Java对象头里的。如果对象是数组类型,则虚拟机用3个字宽(Word)存储对象头,如果是非数组类型,则用2...
在Java中,使用线程来执行异步任务。Java线程的创建于销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建和销毁将消...
Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理使用线程池能够带来3个好处:...
8.1 等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作。 CountDownL...
由于变量的类型有很多种,所以在atomic包中一共提供了13个类,属于4种类型的原子更新方式:(1)原子更新基本类型(2)原子更新数组(3)原子...
6.1 ConcurrentHashMap的实现原理与使用 (1)HashMap在多线程环境下进行put操作可能导致死循环,是因为多线程导致Ha...
5.4 读写锁 之前提到的锁如Mutex和ReentrantLock都是排它锁,这些锁同一时刻都只允许一个线程进行访问。而读写锁在同一时刻可以允...
5.1 LOCK接口 锁是用于控制多个线程访问共享资源的方式。一般来说,一个锁能够防止多个线程同一时间访问一个共享资源(但是有些锁可以允许多个线...
文集作者