![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
test001007
这个作者很懒,什么都没留下…
展开
-
线程安全-计数器
1、计数器实现存在线程安全问题,主要由于value++非原子性操作导致import java.util.Random;public class Sequence { private int value; public int getNext(){ return value++; } //测试 public static void main(String[] ar...原创 2018-07-28 20:12:41 · 1009 阅读 · 0 评论 -
多线程-重入锁、死锁
1、重入锁在非静态方法上使用synchronized同步,此时使用的锁为this对象内置锁,若在静态方法则锁表现为当前类的class文件内置锁。内置锁是一种可重入的锁。public class SynchronizedDemo { public synchronized void methodA(){ System.out.println("methodA方法被调用!");...原创 2018-07-29 23:03:16 · 181 阅读 · 0 评论 -
生产者-消费者
生产者public class Consumer implements Runnable{ private Tmall tmall; public Consumer(Tmall tmall){ this.tmall = tmall; } @Override public void run() { while(true){ tmall.take(); ...原创 2018-08-05 20:41:41 · 171 阅读 · 0 评论 -
多线程通信-condition
使用condition使3个线程顺序执行import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ConditionDemo { private in...原创 2018-08-05 21:32:29 · 151 阅读 · 0 评论 -
守护线程与线程中断
1、主线程结束,守护线程也会提前结束执行。public class ThreadDemo1 extends Thread{ public ThreadDemo1(String name){ super(name); } @Override public void run() { while(true){ System.err.println(getName() ...原创 2018-07-28 12:11:17 · 827 阅读 · 0 评论 -
基于callable创建线程
基于callbale创建线程,可以获取线程返回值。实际开发中使用FutureTask结合Callable实现多线程并发调用。在调用futreTask的get()方法时该方法为阻塞方法,实际开发中可设置超时时间,超过超时时间会抛出异常进行相应业务提示。import java.util.concurrent.Callable;import java.util.concurrent.Future...原创 2018-07-28 12:45:50 · 505 阅读 · 0 评论 -
多线程-MyLock实现
1、计数器线程问题import java.util.Random;public class Sequence { private int value; public int getNext() { return value++; } // 测试 public static void main(String[] args) { Sequence seq = new ...原创 2018-08-01 22:55:35 · 1158 阅读 · 0 评论 -
设计模式-模板方法(TemplateMethod)模式
抽象基类:/** * 抽象基类,为所有子类提供算法框架 * * 提神饮料 * @author yanghw * */public abstract class AbstractRefreshBeverage { /** *制备饮料的模板方法 */ public void prepareBeverageTemplate(){ //1.将水煮沸 boil...原创 2018-08-19 15:49:28 · 159 阅读 · 0 评论