多线程之类

作者: 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

    相关文章

      网友评论

        本文标题:多线程之类

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