多线程
M_azed
这个作者很懒,什么都没留下…
展开
-
二、多线程(1)线程基础
目录一、什么是线程二、如何定义线程1.继承java.lang.Thread类2.实现Runnable接口3.Future/Callable三、实例化四、启动线程五、线程的生命周期①新建②就绪③运行和阻塞④死亡六、常用方法1.currentThread()方法2.sleep()方法3.yield()方法4.getId()方法5...原创 2019-05-30 17:27:43 · 160 阅读 · 0 评论 -
二、多线程(4)JUC并发包--atomic--AtomicInteger/AtomicIntegerArray...
具有原子/原子操作特征的类分类:基本类型:使用原子的方式更新基本类型AtomicInteger:整形原子类 AtomicLong:长整型原子类 AtomicBoolean :布尔型原子类数组类型:使用原子的方式更新数组里的某个元素AtomicIntegerArray:整形数组原子类 AtomicLongArray:长整形数组原子类 AtomicReferenc...原创 2019-07-12 16:48:47 · 167 阅读 · 0 评论 -
二、多线程(4)JUC并发包--collections--②CopyOnwrite(CopyOnWriteArrayList/Set)
一、概念线程安全的List :Vector 、Collections.synchronizedList(new ArrayList()) 、CopyOnWriteArrayList无论是Hashtable-->ConcurrentHashMap,还是说Vector-->CopyOnWriteArrayList。JUC下支持并发的容器与老一代的线程安全类相比,总结起来就是加锁...原创 2019-07-05 16:10:56 · 270 阅读 · 0 评论 -
二、多线程(5)线程中的常用方法
Object和Thread类中, 为我们提供了操作线程的一些方法, 可以让我们对运行中的线程进行控制一、按归属分类类别 方法 简介 Object wait()/wait(long timeout)/wait(long timeout, int nanos) 让当前线程进入等待状态,并释放所持锁 notify()/notifyAll() 唤醒当前对象上的...原创 2019-07-04 18:32:45 · 127 阅读 · 0 评论 -
二、多线程(4)JUC并发包--tools--CountDownLatch/CyclicBarrier/Semaphore/Executors/Exchanger
主要包含了 CountDownLatch , CyclicBarrier , Semaphore , Executors , Exchanger 等一.CountDownLatch一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。1.原理:CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己...原创 2019-07-05 15:20:10 · 260 阅读 · 0 评论 -
二、多线程(4)JUC并发包--collections--①Queue(LinkedBlockingQueue/ArrayBlockingQueue)
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。一、ConcurrentLinkedQueue非阻塞队...原创 2019-07-05 15:26:36 · 220 阅读 · 0 评论 -
二、多线程(4)JUC并发包
学习是一个循序渐进的过程, 就像一部手机, 我们开始接触他的时候只是学怎么用, 慢慢的用多了, 就会如何做一些设置 , 清理垃圾让他运行的更流畅了, 等手机屏幕碎了, 电池坏了, 自己也学会换配件了, 再后来通过看一些手机新机测试机构的视频, 都了解了手机的内部构造了. 学习一个东西也是如此, 时间越长认识越全面越深入, 目前尽量做一个目录和简介, 希望以后再回过头来丰富完善这些知识....原创 2019-06-19 18:32:20 · 310 阅读 · 0 评论 -
二、多线程(3)线程安全--锁
目录一、线程安全二、锁1.什么是锁2.synchronized①用法②对象锁与类锁的区别3.Lock①Lock接口②ReentranLock类③ReadWriteLock接口④ReentrantReadWriteLock4.Lock和synchronized的区别三、锁的一些概念1.可重入锁2.公平锁/非公平锁3.乐观锁/悲观锁...原创 2019-05-31 20:03:23 · 310 阅读 · 0 评论 -
二、多线程(2)线程池ThreadPool
一、概念线程池,其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。好处1)降低资源消耗,重复利用已经创建好的线程,降低线程创建和销毁造成的消耗2)提高响应速度,当任务到达时,任务可以不需要等到线程创建就可以立即执行3)提高线程的可管理性,线程是稀缺资源,如果无限制的创建,不仅消耗系统资源,还会降低系统的稳定性,使...原创 2019-05-31 11:24:17 · 194 阅读 · 0 评论 -
二、多线程(7)AQS抽象队列同步器
AQS(java.util.concurrent.locks.AbstractQueuedSynchronizer)是用来构建锁或者其他同步组件(信号量、事件等)的基础框架类。JDK中许多并发工具类的内部实现都依赖于AQS,如ReentrantLock, Semaphore, CountDownLatch等等。学习AQS的使用与源码实现对深入理解concurrent包中的类有很大的帮助。一、作...原创 2019-08-05 15:22:16 · 131 阅读 · 0 评论