多线程
栗中爆栗
这个作者很懒,什么都没留下…
展开
-
多线程 创建线程(Thread)
package thread;/**创建线程方式一:1.创建:继承Thread+重写run2.启动:创建子类对象+start@author/public class StartThread extends Thread {/** 线程入口点*/@Overridepublic void run() {for(int i=0; i<20; i++) {Syste...原创 2019-09-23 20:10:55 · 136 阅读 · 0 评论 -
多线程 线程安全(synchronized)同步方法
package thread03;/** * 同步方法 * @author * */public class TestHappy12306 { public static void main(String[] args) { Web123060 cinema = new Web123060(20, "film"); new Passenger(cinema,"a",2).s...原创 2019-10-07 13:46:06 · 92 阅读 · 0 评论 -
多线程 线程安全(synchronized) 同步块
package thread03;import java.util.ArrayList;import java.util.List;/** * 快乐影院 * @author * */public class TestHappyCinema2 { public static void main(String[] args) { //可用位置 List<Inte...原创 2019-10-07 13:48:12 · 92 阅读 · 0 评论 -
多线程 线程安全 并发容器
package thread03;import java.util.concurrent.CopyOnWriteArrayList;/** * 线程安全 操作并发容器 * @author * */public class TestSynContainer { public static void main(String[] args) throws InterruptedEx...原创 2019-10-07 13:53:34 · 128 阅读 · 0 评论 -
多线程 死锁的产生与避免
package thread03;/** * 死锁 : 过多的同步可能造成相互不释放资源 * 从而互相等待,一般发生于同步中持有多个对象的锁 * * 避免:不要在同一个代码块中,同时持有多个对象的锁 * * @author * */public class TestDeadLock { public static void main(String[] args) {...原创 2019-10-07 14:12:11 · 97 阅读 · 0 评论 -
多线程 生产者消费者模式 管程法
package thread04;/** * 协作模型:生产者消费者实现方式一:管程法 * 借助缓冲区 * @author * */public class TestCo { public static void main(String[] args) { SynContainer container = new SynContainer(); new Prod...原创 2019-10-07 14:28:16 · 140 阅读 · 0 评论 -
多线程 生产者消费者模式 信号灯法
package thread04;/** * 协作模型:生产者消费者实现方式二: 信号灯法 * 借助标识位 * * @author * */public class TestCo02 { public static void main(String[] args) { TV tv = new TV(); new Player(tv).start(); new ...原创 2019-10-07 14:29:53 · 107 阅读 · 0 评论 -
多线程 定时调度 (Timer、TimerTask)
package others;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Timer;import java.util.TimerTask;/** * 任务调度:Timer 和 TimerTask类 * @author ...原创 2019-10-07 14:32:47 · 228 阅读 · 0 评论 -
多线程 quartz(入门)
package others;import static org.quartz.DateBuilder.evenSecondDateAfterNow;import static org.quartz.JobBuilder.newJob;import static org.quartz.TriggerBuilder.newTrigger;import static org.quart...原创 2019-10-07 14:37:08 · 536 阅读 · 0 评论 -
多线程 可重入锁(HappenedBefore)
package others;/** * 指令重排: 代码执行顺序与预期不一致 * 目的: 提高性能 * @author * */public class HappenBefore { //变量一 private static int a = 0; //变量二 private static boolean flag = false; public static ...原创 2019-10-07 14:40:11 · 185 阅读 · 0 评论 -
多线程 volatile
package others;/** * volatile 用于保证数据的同步,也就是可见性 * @author */public abstract class TestVolatile { private volatile static int num = 0;// private static int num = 0; public static void main(St...原创 2019-10-07 14:41:34 · 77 阅读 · 0 评论 -
多线程 DCL单例模式
package others;/** * DCL单例模式:懒汉式套路基础上加入并发控制,保证在多线程环境下,对外存在一个对象 * 1、构造器私有化-->避免外部new构造器 * 2、提供私有的静态属性-->存储对象的地址 * 3、提供公共的静态方法-->获取属性 * * @author * */public class DoubleCheckedLock...原创 2019-10-07 14:58:36 · 266 阅读 · 0 评论 -
多线程 ThreadLocal(1)
package others;/** * ThreadLocal:每个线程自身的存储本地、局部区域 * get/set/initialValue 获取/设置/初始化 * * @author * */public class TestThreadLocal01 {// private static ThreadLocal<Integer> threadLocal ...原创 2019-10-08 09:52:14 · 86 阅读 · 0 评论 -
多线程 ThreadLocal(2)
package others;/** * ThreadLocal:每个线程自身的数据,更改不会影响其他线程 * * @author * */public class TestThreadLocal02 { private static ThreadLocal<Integer> threadLocal = ThreadLocal.withInitial(()-&g...原创 2019-10-08 09:55:23 · 79 阅读 · 0 评论 -
多线程 ThreadLocal(3)
package others;/** * ThreadLocal:分析上下文 环境 起点 * 1、构造器: 那里调用就属于哪里 找线程体 * 2、run方法:本线程自身的 * @author * */public class TestThreadLocal03 { private static ThreadLocal<Integer> threadLocal...原创 2019-10-08 09:56:43 · 70 阅读 · 0 评论 -
多线程 ThreadLocal(4)
package others;/** * InheritableThreadLocal:继承上下文 环境的数据,拷贝一份给子线程 起点 * * @author * */public class TestThreadLocal04 { private static InheritableThreadLocal<Integer> threadLocal = new I...原创 2019-10-08 09:57:51 · 86 阅读 · 0 评论 -
多线程 可重入锁
package others;import java.util.concurrent.locks.ReentrantLock;/** * 可重入锁:锁可以延续使用+计数器 * @author * */public class TestLock04 { ReentrantLock lock = new ReentrantLock(); public void a() th...原创 2019-10-08 15:07:17 · 105 阅读 · 0 评论 -
多线程 线程安全(synchronized)同步方法 同步块
package thread03;public class TestSynBlock03 { public static void main(String[] args) { //一份资源 SWeb12306 web = new SWeb12306(); //多个代理 new Thread(web,"a").start(); new Thread(web,"b").sta...原创 2019-10-07 13:24:26 · 126 阅读 · 0 评论 -
多线程 守护线程 (Daemon)
package thread02;/** * 守护线程:视为用户线程服务的; jvm停止不用等待守护线程执行完毕 * 默认:用户线程 jvm等待用户线程执行完毕才会停止 * @author ly * */public class TestDaemon { public static void main(String[] args) { Parent person = new...原创 2019-09-30 20:34:57 · 96 阅读 · 0 评论 -
多线程 线程优先级 (Priority)
package thread02;/** * 线程的优先级 1——10 * 1、NORM_PRIORITY 5 默认 * 2、MIN_PRIORITY 1 * 3、MAX_PRIORITY 10 * * 优先级不代表绝对的执行顺序(概率) * @author * */public class TestPriority { public static void main...原创 2019-09-30 20:32:44 · 463 阅读 · 0 评论 -
多线程 下载图片(Thread)
package thread;import java.io.File;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import org.apache.commons.io.FileUtils;/**下载图片@author*/public class...原创 2019-09-23 20:15:02 · 227 阅读 · 0 评论 -
多线程 创建线程(Runnable)
package thread;/**创建线程方式二:1.创建:继承Runnable+重写run2.启动:创建子类对象+Thread对象+start推荐:避免单继承的局限性,优先使用接口方便共享资源@author*/public class StartRun implements Runnable {/** * 线程入口点 */@Overridepublic vo...原创 2019-09-23 21:06:04 · 113 阅读 · 0 评论 -
多线程 下载图片(Runnable)
package thread;import java.io.File;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import org.apache.commons.io.FileUtils;/**下载图片@author*/public class...原创 2019-09-23 21:13:47 · 124 阅读 · 0 评论 -
多线程 模拟抢票过程(Runnable)
package thread;/**使用Runnable共享资源并发(线程安全)@author*/public class Web12306 implements Runnable{//票数private int ticketNums = 99;@Overridepublic void run() { while(true) { if(ticketNums<0...原创 2019-09-24 22:37:44 · 617 阅读 · 0 评论 -
多线程 模拟归途赛跑(Runnable)
package thread;/**创建线程方式二:1.创建:继承Runnable+重写run2.启动:创建子类对象+Thread对象+start推荐:避免单继承的局限性,优先使用接口方便共享资源@author*/public class StartRun implements Runnable {/** * 线程入口点 */@Overridepublic vo...原创 2019-09-24 22:40:12 · 160 阅读 · 0 评论 -
多线程 线程的创建方式三(Callable)
package thread;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.ut...原创 2019-09-24 22:42:45 · 108 阅读 · 0 评论 -
多线程 模拟龟兔赛跑(Callable)
package thread;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.ut...原创 2019-09-24 22:44:39 · 212 阅读 · 0 评论 -
多线程 lambda(3)
package thread;/**lamabda推导 + 参数 + 返回值@author*/public class TestLambda03 {public static void main(String[] args) {IInterest interest = (int a1,int a2)-> {System.out.println(“i like lmabd...原创 2019-09-24 22:54:55 · 184 阅读 · 0 评论 -
多线程 lambda(2)
package thread;/**lamabda推导 + 参数@author*/public class TestLambda02 {public static void main(String[] args) {ILove love = (int a) ->{System.out.println(“i like lmabda–>”+a);};love.la...原创 2019-09-24 22:53:39 · 89 阅读 · 0 评论 -
多线程 lambda(1)
package thread;/**lamabda推导@author*/public class TestLambda {//静态内部类static class Like2 implements ILike{public void lambda() {System.out.println(“i like lambda2”);}}public static void m...原创 2019-09-24 22:52:18 · 110 阅读 · 0 评论 -
多线程 lambda(4)
package thread;/**lamabda推导 + 参数 + 返回值@author*/public class TestLambda04 {public static void main(String[] args) {new Thread(()->{for(int i=0; i<100; i++) {System.out.println(“一边学习”)...原创 2019-09-24 22:56:28 · 105 阅读 · 0 评论 -
多线程 线程状态 终止
package thread02;/**终止线程1、线程正常执行完毕–>次数2、外部干涉–>加入标识不要使用 stop destroy@author*/public class TestTerminateThread implements Runnable{//终止线程//1、加入标识 标识线程体是否可以运行private boolean flag = tr...原创 2019-09-30 20:21:43 · 98 阅读 · 0 评论 -
多线程 线程状态 暂停 (sleep)
package thread02;import java.text.SimpleDateFormat;import java.util.Date;/** * sleep模拟倒计时 * * @author * */public class TestBlockedSleep03 { public static void main(String[] args) throws ...原创 2019-09-30 20:23:23 · 120 阅读 · 0 评论 -
多线程 线程状态 礼让(yield)
package thread02;/** * yield礼让线程 暂停线程 直接进入就绪状态(不是阻塞状态) * @author * */public class TestYield { public static void main(String[] args) { new Thread(()->{ for(int i=0; i<100; i++) { ...原创 2019-09-30 20:25:20 · 164 阅读 · 0 评论 -
多线程 线程状态 插队 (join)
package thread02;/** * Join 合并线程(插队线程) * @author * */public class TestJoin { public static void main(String[] args) throws InterruptedException { Thread t = new Thread(()->{ for(int i...原创 2019-09-30 20:27:17 · 256 阅读 · 0 评论 -
多线程 线程状态
package thread02;import java.lang.Thread.State;/** * 观察线程的状态 * @author * */public class TestAllState { public static void main(String[] args) { Thread t = new Thread(()->{ for(i...原创 2019-09-30 20:29:29 · 78 阅读 · 0 评论 -
多线程 CAS
package others;import java.util.concurrent.atomic.AtomicInteger;/** * CAS:比较并交换 * CAS是一组原子操作不会被外部打断 * @author * */public class CAS { //库存 private static AtomicInteger stock = new AtomicI...原创 2019-10-08 15:36:08 · 122 阅读 · 0 评论