摘要:
参数说明:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue) { this(cor 阅读全文
摘要:
package 第三章.线程阻塞工具LockSupport;import java.util.concurrent.locks.LockSupport;/** * Created by zzq on 2018/2/2. */public class LockSupportDemo { public 阅读全文
摘要:
package 第三章.循环栅栏CyclicBarrier;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;/** * Created by zzq on 201 阅读全文
摘要:
一、分为两种:公平和非公平线程 a b c d e公平:按顺序执行:a,b,d,e 读锁 c 写锁 1.a,b 执行 c 堵塞,d,e 等待 2.a,b执行结束 c获取锁 d,e堵塞等待 3.c执行结束 d开始执行,然后在唤醒e非公平: 1,2步骤相同 3,c执行结束的时候,新来个线程 f读锁,在d 阅读全文
摘要:
package 第三章.倒计时器CountDownLatch;import java.util.concurrent.CountDownLatch;/** * Created by zzq on 2018/1/24. */public class CountDoenLatchTest impleme 阅读全文
摘要:
package 第三章.信号量;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;/** * Created 阅读全文
摘要:
package 第三章.重入锁;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;/** * Created by zzq on 2018/1/23. */publi 阅读全文
摘要:
package 第三章.重入锁;import java.util.concurrent.locks.ReentrantLock;/** * Created by zzq on 2018/1/22. */public class ReentrantLockTest implements Runnabl 阅读全文
摘要:
package 第二章.错误的加锁;/** * Created by zzq on 2018/1/22. */public class BadLockOnInteger implements Runnable{ public static Integer i = 0; static BadLockO 阅读全文
摘要:
package 第二章.并发下诡异的HashMap;import org.junit.Test;import java.util.HashMap;import java.util.Map;import java.util.concurrent.atomic.AtomicInteger;/** * C 阅读全文
摘要:
package 第二章.并发下的ArrayList;import java.util.ArrayList;import java.util.List;/** * Created by zzq on 2018/1/19. */public class 并发下的ArrayList { static Ar 阅读全文
摘要:
package 第二章.程序的幽灵之隐蔽的错误;/** * Created by zzq on 2018/1/19. */public class 隐蔽的错误 { public static void main(String[] args) {// int v1=1073741827;// int 阅读全文
摘要:
package 第二章.守护线程;/** * Created by zzq on 2018/1/18. */public class 守护线程Test { public static class MyThread extends Thread{ private int i = 0; @Overrid 阅读全文
摘要:
package 第二章.线程优先级;/** * Created by zzq on 2018/1/18. */public class 线程优先级 { public static class T1 extends Thread{ @Override public void run() { Syste 阅读全文
摘要:
public class 线程组创建 { public static void main(String[] args) { ThreadGroup threadGroup=new ThreadGroup("my"); threadGroup.setMaxPriority(5); System.out 阅读全文
摘要:
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于vo 阅读全文
摘要:
在前面谈到了一些关于内存模型以及并发编程中可能会出现的一些问题。下面我们来看一下Java内存模型,研究一下Java内存模型为我们提供了哪些保证以及在java中提供了哪些方法和机制来让我们在进行多线程编程时能够保证程序执行的正确性。在Java虚拟机规范中试图定义一种Java内存模型(Java Memo 阅读全文
摘要:
package 第二章.新建线程;/** * Created by zzq on 2018/1/17. */public class 线程中断 { public static void main(String[] args) throws InterruptedException { Thread 阅读全文
摘要:
package 第二章.新建线程;/** * Created by zzq on 2018/1/17. */public class 线程中断 { public static void main(String[] args) throws InterruptedException { Thread 阅读全文
摘要:
public class 等待和通知 { final static Object ob=new Object(); public static class T1 extends Thread{ @Override public void run() { synchronized (ob){ Syst 阅读全文