多线程之类

作者: vaneL | 来源:发表于2017-08-03 22:09 被阅读0次
  1. AtomicInteger类:可以对基本数据/数组中的基本数据/类中的基本数据进行操作
  2. Executors类:
    a. ExecutorService threadPool = Executors.newFixedThreadPool(3);固定大小线程池
    b. ExecutorService threadPool = Executors.newCachedThreadPool();缓存线程池
    c. ExecutorService threadPool = Executors.newSingleThreadExecutor();单一线程池
  3. Callable&Future:
    a. Callable采用ExecutorService的submit方法提交,返回的future对象可以取消任务
    b. Future取得的结果类型和Callable返回的结果类型必须一致,通过泛型来实现
Future<String> future = threadPool.submit(new Callable<String>() {
            @Override
            public String call() throws Exception {
                Thread.sleep(2000);
                return "hello";
            }
        });

CompletionService<Integer> completionService = new ExecutorCompletionService<~>(threadPool2);
        for (int i = 0; i < 10; i++) {
            final int seq = i;
            completionService.submit(new Callable<Integer>() {
                @Override
                public Integer call() throws Exception {
                    Thread.sleep(new Random().nextInt(5000));
                    return seq;
                }
            });
        }
  1. Lock&Condition
    a. 两个线程要实现互斥,它们必须用同一个Lock对象。
    b. Lock与synchronize作用一样,锁本身是一个对象
    c. 读写锁【多个读锁不互斥、读锁写锁互斥、写锁写锁互斥】
    d. Condition功能类似Object的wait和notify方法
    e. 一个锁可以有多个Condition,即有多路等待和通知

  2. Semaphore信号灯
    a. 可以维护当前访问自身的线程个数,并提供同步机制
    b. 单个semaphore可以实现互斥锁功能【一个线程获得锁,再由另一个线程释放锁】

  3. 队列BlockingQueue
    a. 只有put方法和take方法才具有阻塞效果
    b. 用两个具有1个空间的队列来实现同步通知功能
    c. 与Semaphore相似;但队列是一方存放数据,一方释放数据;而Semaphore通常是由同一方设置和释放信号量
    d.ArrayBlockingQueue & LinkedBlockingDeque

  1. 同步集合【java5提供的】
    a. ConcurrentHashMap
    b. ConcurrentSkipListMap
    c. ConcurrentSkipListSet
    d. CopyOnWriteArrayList
    e. CopyOnWriteArraySet

  2. 使用了两个condition!!!

condition.jpg condition2.jpg

相关文章

  • 多线程之类

    AtomicInteger类:可以对基本数据/数组中的基本数据/类中的基本数据进行操作 Executors类:a....

  • Python 爬虫——单线程、多线程、多进程对比

    用 python 挺久了,但并没有深入了解过多线程多进程之类的知识,最近看了许多关于多线程多进程的知识,记录简单的...

  • JUC Atomic原子类深入

    什么是Atomic Atomic是原子性的意思,可以自动更新,用于原子增量计数器之类的应用程序。可以解决多线程环境...

  • WinForm跨线程UI操作常用控件类大全

    前言 在C#开发的WinForm窗体程序开发的时候,经常会使用多线程处理一些比较耗时之类的操作。不过会有一个问题:...

  • 动漫之类

    堆糖太皮,会和谐我放的影视链接 太讨厌了,我试试简书可不可以,从前在POPO上写文的时候都是先在简书上码好的。 我...

  • typescript之类

    类 类就是面向对象编程,javascript基于原型的方法来实现类,es6之后引入class关键字,本质上虽然还是...

  • TypeScript 之类

    介绍 传统的 JavaScript 程序使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程...

  • iOS多线程 NSOperation

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程 pthread、NSThread

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程: GCD

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

网友评论

    本文标题:多线程之类

    本文链接:https://www.haomeiwen.com/subject/majmlxtx.html