二、Java基础系列之并发包

版权声明:话不在多,在于精 https://blog.csdn.net/qq_29857681/article/details/89450135

CompletionService

ExecutorCompletionService

= Executor + LinkedBlockingQueue

典型的适配器模式

CompletionStage

CompletableFuture

线程池 = Runnable + Executor

AbstractExecutorService

submit

execute

Future

ForkJoinTask

FutureTask

ThreadFactory(自定义)

   static class DefaultThreadFactory implements ThreadFactory {
        private static final AtomicInteger poolNumber = new AtomicInteger(1);
        private final ThreadGroup group;
        private final AtomicInteger threadNumber = new AtomicInteger(1);
        private final String namePrefix;

        DefaultThreadFactory() {
            SecurityManager s = System.getSecurityManager();
            group = (s != null) ? s.getThreadGroup() :
                                  Thread.currentThread().getThreadGroup();
            namePrefix = "pool-" +
                          poolNumber.getAndIncrement() +
                         "-thread-";
        }

        public Thread newThread(Runnable r) {
            Thread t = new Thread(group, r,
                                  namePrefix + threadNumber.getAndIncrement(),
                                  0);
            if (t.isDaemon())
                t.setDaemon(false);
            if (t.getPriority() != Thread.NORM_PRIORITY)
                t.setPriority(Thread.NORM_PRIORITY);
            return t;
        }
    }

Lock

AbstractQueuedSynchronizer

LockSupport

ReentrantLock

Atomic

public final int getAndAddInt(Object var1, long var2, int var4) {
        int var5;
        do {
            var5 = this.getIntVolatile(var1, var2);
        } while(!this.compareAndSwapInt(var1, var2, var5, var5 + var4));

        return var5;
    }

Stream

猜你喜欢

转载自blog.csdn.net/qq_29857681/article/details/89450135