并发编程之volatile

volatile的定义和实现原理在Java语言规范中将volatile定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该通过排他锁单独获得这个变量。Java语言提供了volatile,在某型情况下比使用锁更加方便。如果一个字段被声明为volatile,Java线程内存模型确保所有线程看到这个变量的值是一致的。

多线程之连续打印ABC

题目实例化三个线程,一个线程打印a,一个线程打印b,一个线程打印c,三个线程同时执行,要求打印出10个连着的abc。 问题为三线程间的同步唤醒操作,主要的目的就是使程序按ThreadA->ThreadB->ThreadC->ThreadA循环执行三个线程

如何让多个线程同时开始执行

有些时候有这样的情况,需要多个线程同时开始执行任务。为了实现这样的需求,我大概想到了以下两种方式。第一种方式是采用CyclicBarrier类来实现,让多个线程相互等待,直到达到一个屏障点,并且 CyclicBarrier是可重用的。第二种方案是使用CountDownLatch来实现,当计数器为0的时候,所有等待的线程都被唤醒,开始执行他们的任务。