
多线程、高并发
little_programmer_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java高并发、多线程(九)-- CyclicBarrier
java高并发、多线程(九)CyclicBarrier代码事例源码结构事例执行流程CyclicBarrier代码事例先看一段代码:public class CyclicBarrierTest { public static void main(String[] args) { CyclicBarrier cb = new CyclicBarrier(2,() -> System.out.println(Thread.currentThread().getName() +原创 2020-06-10 14:47:55 · 228 阅读 · 0 评论 -
java高并发、多线程(八)--LockSupport.park()会释放锁吗?
java高并发、多线程(八)public class LockSupportTest { public synchronized void m1(){ System.out.println("m1 start"); LockSupport.park(); System.out.println("m1 end"); } public synchronized void m2(){ System.out.pri原创 2020-06-09 20:41:50 · 1458 阅读 · 2 评论 -
java高并发、多线程(七)--CountDownLatch
java高并发、多线程(七)CountDownLatch一个简单的例子源码Sync类CountDownLatch一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。一个简单的例子public class CountDownLatchTest { public static void main(String[] args) { List<Thread> list = new ArrayList<>();原创 2020-06-08 18:11:00 · 260 阅读 · 0 评论 -
java高并发、多线程(六)--ReentrantLock
java高并发、多线程(六)ReentrantLockNonfairSync类tryAcquire(int)lock()FairSync 类Sync类ReentrantLockReentrantLock源码结构:public class ReentrantLock implements Lock, java.io.Serializable { private final Sync sync; //锁实现类 abstract static class Sync extends A原创 2020-06-08 15:20:40 · 264 阅读 · 0 评论 -
java高并发、多线程(五)--AbstractQueuedSynchronizer
java高并发、多线程(五)AbstractQueuedSynchronizerAbstractQueuedSynchronizerAbstractQueuedSynchronizer(AQS)提供一个框架,用于实现依赖先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量,事件等)。首先我们来看看它的源码结构:public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer原创 2020-06-05 18:32:39 · 177 阅读 · 0 评论 -
java高并发、多线程(四)--AtomicInteger
java高并发、多线程(四)AtomicIntegerAtomicInteger在上一节中我们举了下面这样一个例子:public class SynchronizedTest { static int count = 0; public synchronized static void add() { for (int i = 0; i < 10000; i++) { count++; } } publi原创 2020-06-04 17:14:17 · 567 阅读 · 0 评论 -
java高并发、多线程(三)--synchronized
java高并发、多线程(三)synchronized加锁的方式synchronized的性质synchronized锁升级优化注意事项synchronized先看下面例子:public class SynchronizedTest { static int count = 0; public static void add() { for (int i = 0; i < 10000; i++) { count++; }原创 2020-06-04 11:36:25 · 139 阅读 · 0 评论 -
java高并发、多线程(二)--volatile
java高并发、多线程(二)volatilevolatilevolatile的主要作用是保证线程间的可见性,被用于修饰共享变量。先看一个例子:public class VolatileTest extends Thread{ private boolean running = true; @Override public void run() { System.out.println(Thread.currentThread().getName() + "原创 2020-06-03 16:37:08 · 217 阅读 · 0 评论 -
java高并发、多线程(一)--实现
java高并发、多线程(一)实现多线程的方式两种实现方式的区别线程状态实现多线程的方式实现多线程一般由两种方式,一种是继承Thread类,另一种是继承Runnable接口。public class CreateThread { /*方式一:继承Thread类,并重写run()*/ static class MyThread extends Thread{ @Override public void run() { System.原创 2020-06-03 15:09:29 · 186 阅读 · 0 评论