摘要:使用 Executors.newScheduledThreadPool的任务调度 ScheduledExecutor 鉴于 Timer 的上述缺陷,Java 5 推出了基于线程池设计的 ScheduledExecutor。其设计思想是,每一个被调度的任务都会由线程池中一个线程去执行,因此任务是并发执
阅读全文
摘要:一、创建线程 1、继承 Thread 2、实现 Runnable 3、实现 Callable 二、线程的状态 1、新生,就绪,运行,阻塞,终止 2、终止线程 3、阻塞(暂停,之后进入就绪状态):join, yield, sleep 三、线程信息 1、Thread.currrentThread 2、名
阅读全文
摘要:package com.bjszt.thread.create; /* * * * 一个场景,共同的资源 * 生产者消费者模式 信号灯法 * wait():等待,释放锁 sleep 等待,不释放锁 * * notify()/notifyAll() 唤醒 * */public class Moive
阅读全文
摘要:没有同步就不会造成死锁,过多的同步会造成死锁。 下面这个可能会造成死锁, package com.bjszt.thread.create; //过多的同步方法可能造成死锁public class SynDemo03 { public static void main(String[] args) {
阅读全文
摘要:package com.bjszt.thread.create;//单例创建模式//懒汉式/*1、懒汉式 * 1)构造器私有化 * 2)声明私有的静态属性 * 3)对外提供访问属性的静态方法,确保该对象存在 * * */public class MyJvm { private static MyJv
阅读全文
摘要:线程安全会牺牲效率。范围不能过大,会导致效率低,也不能过小,会导致线程不安全 同步(synchronized),多个线程访问同一个资源,确保线程安全。。。 1、同步块 synchronized(引用类型|this|类.class){ },抢到资源,并且不允许其他线程使用该资源 例子: public
阅读全文
摘要:package com.bjszt.thread.create; public class MyThread implements Runnable{private boolean flag=true;private int num=0; public static void main(String
阅读全文
摘要:1、新生状态 2、就绪状态 3、运行状态 4、阻塞状态 二、停止线程 1、自然终止正在执行的线程 2、外部干涉 1)线程类中定义线程体使用的标志 2)线程体使用该标志 3)提供对外的方法改变该标志 4)外部根据条件调用该方法 package com.bjszt.thread.create; publ
阅读全文
摘要:package com.bjszt.thread.create; import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.Execu
阅读全文
摘要:package com.bjszt.thread.create; //静态代理设计模式//1、真实角色//2、代理角色,持有真是角色的引用//3,二者实现相同接口public class StaticProxy { public static void main(String[] args) { /
阅读全文
摘要:package com.thread.synchronizeds; import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock; public class CoLockTest { pu
阅读全文
摘要:Callable andFuture ,用于获取线程的返回结果,Callable返回结果,Future取结果 package com.thread.xunhuan; import java.util.concurrent.Callable;import java.util.concurrent.Ex
阅读全文
摘要:一:简单说明 ScheduleExecutorService接口中有四个重要的方法,其中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序时比较方便。 下面是该接口的原型定义 java.util.concurrent.ScheduleExecutorS
阅读全文
摘要:package com.thread.pool; import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors; public class ThreadPool { public static vo
阅读全文
摘要:package com.thread.xunhuan; import java.util.Random; public class ThreadLocalTest { private static ThreadLocal<Integer> x=new ThreadLocal<Integer>();p
阅读全文
摘要:package com.thread.xunhuan; import java.util.HashMap;import java.util.Map;import java.util.Random; public class ThreadScopeSharedData { private static
阅读全文
摘要:子线程循环10次,主线程循环100次,接着回到子线程循环10次,接着回到主线程有循环100次,如此循环50次。彼此之间互不干扰,互不打断 互斥的代码放到一个类中 package com.thread.xunhuan; public class TraditionalThreadCommunicati
阅读全文
摘要:package com.thread.synchronizeds; public class TraditionalThreadSynchonized { public static void main(String[] args) { // TODO 自动生成的方法存根 new Tradition
阅读全文
摘要:package com.thread.synchronizeds; public class TraditionalThreadSynchonized { public static void main(String[] args) { // TODO 自动生成的方法存根 new Tradition
阅读全文
摘要:package com.thread.timer;import java.util.Date;import java.util.Timer;import java.util.TimerTask;//他其实是一个线程,在运行过程中,即使注释掉while,这个线程也不必停止,说明他是独立于main线程的
阅读全文