Java 类java.util.concurrent.ExecutorService 实例源码

项目:guava-mock    文件:UninterruptibleFutureTest.java   
@Override protected void setUp() {
  final ExecutorService executor = Executors.newSingleThreadExecutor();
  tearDownStack.addTearDown(new TearDown() {
    @Override
    public void tearDown() {
      executor.shutdownNow();
    }
  });
  sleeper = new SleepingRunnable(1000);
  delayedFuture = executor.submit(sleeper, true);

  tearDownStack.addTearDown(new TearDown() {
    @Override
    public void tearDown() {
      Thread.interrupted();
    }
  });
}
项目:ditb    文件:ThriftServer.java   
private static TServer getTHsHaServer(TProtocolFactory protocolFactory,
    TProcessor processor, TTransportFactory transportFactory,
    int workerThreads,
    InetSocketAddress inetSocketAddress, ThriftMetrics metrics)
    throws TTransportException {
  TNonblockingServerTransport serverTransport = new TNonblockingServerSocket(inetSocketAddress);
  log.info("starting HBase HsHA Thrift server on " + inetSocketAddress.toString());
  THsHaServer.Args serverArgs = new THsHaServer.Args(serverTransport);
  if (workerThreads > 0) {
    // Could support the min & max threads, avoiding to preserve existing functionality.
    serverArgs.minWorkerThreads(workerThreads).maxWorkerThreads(workerThreads);
  }
  ExecutorService executorService = createExecutor(
      workerThreads, metrics);
  serverArgs.executorService(executorService);
  serverArgs.processor(processor);
  serverArgs.transportFactory(transportFactory);
  serverArgs.protocolFactory(protocolFactory);
  return new THsHaServer(serverArgs);
}
项目:WebAndAppUITesting    文件:PerfMonitor.java   
/**
 * from javase7 doc
 * 
 * @param pool
 */
private void shutdownAndAwaitTermination(ExecutorService pool) {
    pool.shutdown(); // Disable new tasks from being submitted
    try {
        // Wait a while for existing tasks to terminate
        if (!pool.awaitTermination(5, TimeUnit.SECONDS)) {
            pool.shutdownNow(); // Cancel currently executing tasks
            // Wait a while for tasks to respond to being cancelled
            if (!pool.awaitTermination(5, TimeUnit.SECONDS))
                System.err.println("Pool did not terminate");
        }
    } catch (InterruptedException ie) {
        // (Re-)Cancel if current thread also interrupted
        pool.shutdownNow();
        // Preserve interrupt status
        Thread.currentThread().interrupt();
    }
}
项目:rs-aggregator    文件:Expedition.java   
/**
 * Gather ResourceSync Framework documents from a source in ResultIndexes.
 *
 * @param url the starting url to explore
 * @return List of resultIndexes of the exploration
 * @throws URISyntaxException if the url could not be converted to a URI.
 * @throws InterruptedException at Executor interrupts.
 */
public List<ResultIndex> explore(String url) throws URISyntaxException, InterruptedException {
  URI uri = new URI(url);

  ExecutorService executor = Executors.newWorkStealingPool();

  List<Callable<ResultIndex>> callables = new ArrayList<>();
  callables.add(() -> exploreWellKnown(uri));
  callables.add(() -> exploreLinks(uri));
  callables.add(() -> exploreRobotsTxt(uri));
  callables.add(() -> exploreRsDocumentUri(uri));

  return executor.invokeAll(callables)
    .stream()
    .map(future -> {
      try {
        return future.get();
      } catch (Exception e) {
        throw new IllegalStateException(e);
      }
    })
    .collect(Collectors.toList());
}
项目:cos-java-sdk-v5    文件:CopyMonitor.java   
/**
 * Constructs a new watcher for copy operation, and then immediately submits
 * it to the thread pool.
 *
 * @param manager
 *            The {@link TransferManager} that owns this copy request.
 * @param threadPool
 *            The {@link ExecutorService} to which we should submit new
 *            tasks.
 * @param multipartCopyCallable
 *            The callable responsible for processing the copy
 *            asynchronously
 * @param copyObjectRequest
 *            The original CopyObject request
 */
public static CopyMonitor create(
        TransferManager manager,
        CopyImpl transfer,
        ExecutorService threadPool,
        CopyCallable multipartCopyCallable,
        CopyObjectRequest copyObjectRequest,
        ProgressListenerChain progressListenerChain) {

    CopyMonitor copyMonitor = new CopyMonitor(manager, transfer,
            threadPool, multipartCopyCallable, copyObjectRequest,
            progressListenerChain);
    Future<CopyResult> thisFuture = threadPool.submit(copyMonitor);
    // Use an atomic compareAndSet to prevent a possible race between the
    // setting of the CopyMonitor's futureReference, and setting the
    // CompleteMultipartCopy's futureReference within the call() method.
    // We only want to set the futureReference to CopyMonitor's futureReference if the
    // current value is null, otherwise the futureReference that's set is
    // CompleteMultipartCopy's which is ultimately what we want.
    copyMonitor.futureReference.compareAndSet(null, thisFuture);
    return copyMonitor;
}
项目:apfloat    文件:BackgroundOperation.java   
/**
 * Runs an operation in the background in a separate thread.
 * The execution is started immediately.
 *
 * @param operation The operation to execute.
 */

public BackgroundOperation(final Operation<T> operation)
{
    ApfloatContext ctx = ApfloatContext.getContext();
    ExecutorService executorService = ctx.getExecutorService();
    Callable<T> callable = new Callable<T>()
    {
        public T call()
        {
            return operation.execute();
        }
    };

    this.future = executorService.submit(callable);
}
项目:openjdk-jdk10    文件:ShortRequestBody.java   
public static void main(String[] args) throws Exception {
    try (Server server = new Server()) {
        URI uri = new URI("http://127.0.0.1:" + server.getPort() + "/");

        // sanity
        success(uri, new StringRequestBody(STRING_BODY, 0));
        success(uri, new ByteArrayRequestBody(BYTE_ARRAY_BODY, 0));
        success(uri, new FileRequestBody(FILE_BODY, 0));

        for (int i=1; i< BODY_OFFSETS.length; i++) {
            failureBlocking(uri, new StringRequestBody(STRING_BODY, BODY_OFFSETS[i]));
            failureBlocking(uri, new ByteArrayRequestBody(BYTE_ARRAY_BODY, BODY_OFFSETS[i]));
            failureBlocking(uri, new FileRequestBody(FILE_BODY, BODY_OFFSETS[i]));

            failureNonBlocking(uri, new StringRequestBody(STRING_BODY, BODY_OFFSETS[i]));
            failureNonBlocking(uri, new ByteArrayRequestBody(BYTE_ARRAY_BODY, BODY_OFFSETS[i]));
            failureNonBlocking(uri, new FileRequestBody(FILE_BODY, BODY_OFFSETS[i]));
        }
    } finally {
        Executor def = defaultClient().executor();
        if (def instanceof ExecutorService) {
           ((ExecutorService)def).shutdownNow();
        }
    }
}
项目:util4j    文件:TestTreeMap.java   
public void runTest()
{
    ScheduledExecutorService s=new ScheduledThreadPoolExecutor(2, new NamedThreadFactory("Scheduled"));
    ExecutorService es=Executors.newCachedThreadPool();
    es.execute(this::writeTest);
    es.execute(this::writeTest);
    es.execute(this::writeTest);
    es.execute(this::writeTest);
    es.execute(this::readTest);
    es.execute(this::readTest);
    es.execute(this::readTest);
    es.execute(this::readTest);
    es.execute(this::readTest);
    es.execute(this::readTest);
    s.scheduleAtFixedRate(this::printInfo,5, 5, TimeUnit.SECONDS);
}
项目:ijaas    文件:IjaasServer.java   
void start() {
  new Thread(
          () -> {
            ExecutorService executorService = Executors.newCachedThreadPool();
            try (ServerSocket serverSocket =
                new ServerSocket(port, 0, InetAddress.getLoopbackAddress())) {
              while (true) {
                Socket socket = serverSocket.accept();
                executorService.execute(() -> process(socket));
              }
            } catch (IOException e) {
              throw new RuntimeException(e);
            }
          })
      .start();
}
项目:metanome-algorithms    文件:CMAX_SET_Generator.java   
private void generateCMAX_SETs() throws AlgorithmExecutionException {

        if (this.optimize()) {
            this.cmaxSet = new CopyOnWriteArrayList<CMAX_SET>();
            ExecutorService exec = this.getExecuter();
            for (int i = 0; i < this.numberOfAttributes; ++i) {
                exec.execute(new CMAX_SET_JOB(i));
            }
            this.awaitExecuter(exec);
        } else {
            this.cmaxSet = new LinkedList<CMAX_SET>();
            for (int i = 0; i < this.numberOfAttributes; ++i) {
                executeCMAX_SET_Task(i);
            }

        }

    }
项目:ts-benchmark    文件:HttpPoolManager.java   
public static void main(String[] args) throws InterruptedException {
    ExecutorService pool = Executors.newFixedThreadPool(300);
    for(int i=0;i<10000;i++){
        pool.execute(new Runnable() {
    @Override
    public void run() {
        try {
            executeHttp();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
});

    }
     Thread.sleep(1000000L);
 }
项目:uavstack    文件:Test.java   
public void testThreadPool2() {

        System.out.println();
        ExecutorService service = Executors.newFixedThreadPool(2);
        for (int i = 0; i < 10; i++) {
            service.submit(new SimpleThread2(i));
        }
        try {
            Thread.sleep(5 * 1000);
        }
        catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        service.shutdown();
    }
项目:EatDubbo    文件:WrappedChannelHandler.java   
public void close() {
    try {
        if (executor instanceof ExecutorService) {
            ((ExecutorService)executor).shutdown();
        }
    } catch (Throwable t) {
        logger.warn("fail to destroy thread pool of server: " + t.getMessage(), t);
    }
}
项目:dubbo2    文件:WrappedChannelHandler.java   
public void close() {
    try {
        if (executor instanceof ExecutorService) {
            ((ExecutorService)executor).shutdown();
        }
    } catch (Throwable t) {
        logger.warn("fail to destroy thread pool of server: " + t.getMessage(), t);
    }
}
项目:dubbo2    文件:AbstractServer.java   
public AbstractServer(URL url, ChannelHandler handler) throws RemotingException {
    super(url, handler);
    localAddress = getUrl().toInetSocketAddress();
    String host = url.getParameter(Constants.ANYHOST_KEY, false) 
                    || NetUtils.isInvalidLocalHost(getUrl().getHost()) 
                    ? NetUtils.ANYHOST : getUrl().getHost();
    bindAddress = new InetSocketAddress(host, getUrl().getPort());
    this.accepts = url.getParameter(Constants.ACCEPTS_KEY, Constants.DEFAULT_ACCEPTS);
    this.idleTimeout = url.getParameter(Constants.IDLE_TIMEOUT_KEY, Constants.DEFAULT_IDLE_TIMEOUT);
    try {
        doOpen();
        if (logger.isInfoEnabled()) {
            logger.info("Start " + getClass().getSimpleName() + " bind " + getBindAddress() + ", export " + getLocalAddress());
        }
    } catch (Throwable t) {
        throw new RemotingException(url.toInetSocketAddress(), null, "Failed to bind " + getClass().getSimpleName() 
                                    + " on " + getLocalAddress() + ", cause: " + t.getMessage(), t);
    }

    executor = (ExecutorService) ExtensionLoader.getExtensionLoader(DataStore.class)
            .getDefaultExtension().get(Constants.EXECUTOR_SERVICE_COMPONENT_KEY, Integer.toString(url.getPort()));
}
项目:ditb    文件:ConnectionManager.java   
@Override
@Deprecated
public <R> void processBatchCallback(
  List<? extends Row> list,
  byte[] tableName,
  ExecutorService pool,
  Object[] results,
  Batch.Callback<R> callback)
  throws IOException, InterruptedException {
  processBatchCallback(list, TableName.valueOf(tableName), pool, results, callback);
}
项目:Transwarp-Sample-Code    文件:kafkaConsumer.java   
/**
     * 创建线程池,执行kafka消费者
     */
    public void go() {
        Constant constant = new Constant();
        kafkaProperties kafkaProperties = new kafkaProperties();
        ConsumerConfig config = new ConsumerConfig(kafkaProperties.properties());

        ExecutorService executorService = Executors.newFixedThreadPool(Integer.parseInt(constant.THREAD_POOL_SIZE));

        String topic = constant.TOPIC;
//        Task[] tasks = new Task[Integer.parseInt(constant.THREAD_NUM)];
        Map<String, Integer> topicCountMap = new HashMap<>();
        topicCountMap.put(topic, new Integer(constant.THREAD_NUM));
        ConsumerConnector consumer = kafka.consumer.Consumer.createJavaConsumerConnector(config);
        Map<String, List<KafkaStream<byte[], byte[]>>> consumerMap = consumer.createMessageStreams(topicCountMap);
        List<KafkaStream<byte[], byte[]>> streams = consumerMap.get(topic);

        for (KafkaStream stream : streams) {
            executorService.submit(new Task(stream));
        }

        executorService.shutdown();
    }
项目:Java-SE-9-Road-to-Concurrent-and-High-Performance-Programming    文件:Main.java   
/**
 * Main method of the class.
 * @param args
 */
public static void main(String[] args) {
    // Create an executor
    ExecutorService executor=Executors.newCachedThreadPool();

    //Create five tasks
    ResultTask resultTasks[]=new ResultTask[5];
    for (int i=0; i<5; i++) {
        ExecutableTask executableTask=new ExecutableTask("Task "+i);
        resultTasks[i]=new ResultTask(executableTask);
        executor.submit(resultTasks[i]);
    }

    // Sleep the thread five seconds
    try {
        TimeUnit.SECONDS.sleep(5);
    } catch (InterruptedException e1) {
        e1.printStackTrace();
    }

    // Cancel all the tasks. In the tasks that have finished before this moment, this
    // cancellation has no effects
    for (int i=0; i<resultTasks.length; i++) {
        resultTasks[i].cancel(true);
    }

    // Write the results of those tasks that haven't been cancelled
    for (int i=0; i<resultTasks.length; i++) {
        try {
            if (!resultTasks[i].isCancelled()){
                System.out.printf("%s\n",resultTasks[i].get());
            }
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        } 
    }
    // Finish the executor.
    executor.shutdown();

}
项目:cas-5.1.0    文件:JpaLockingStrategyTests.java   
/**
 * Test concurrent acquire/release semantics.
 */
@Test
public void verifyConcurrentAcquireAndRelease() throws Exception {
    final ExecutorService executor = Executors.newFixedThreadPool(CONCURRENT_SIZE);
    try {
        testConcurrency(executor, Arrays.asList(getConcurrentLocks("concurrent-new")));
    } catch (final Exception e) {
        LOGGER.debug("testConcurrentAcquireAndRelease produced an error", e);
        fail("testConcurrentAcquireAndRelease failed.");
    } finally {
        executor.shutdownNow();
    }
}
项目:dhus-core    文件:FairThreadPoolTaskExecutor.java   
@Override
public Future<?> submit (Runnable task)
{
   ExecutorService executor = getThreadPoolExecutor ();
   try
   {
      return executor.submit (task);
   }
   catch (RejectedExecutionException ex)
   {
      throw new TaskRejectedException ("Executor [" + executor +
         "] did not accept task: " + task, ex);
   }
}
项目:ProjectAres    文件:MinecraftModelsManifest.java   
@Override
protected void configure() {
    // We want a global binding for @ModelSync ExecutorService, but each plugin has
    // its own executors, so just use the API plugin's executor globally.
    bind(Key.get(ExecutorService.class, ModelSync.class))
        .to(Key.get(ExecutorService.class, Sync.immediate));

    final PluginFacetBinder facets = new PluginFacetBinder(binder());
    facets.register(ModelCommands.class);
    facets.register(ModelCommands.Parent.class);
}
项目:JRockets    文件:AggregatorRunnableIntegrationTest.java   
@Test(timeout = 100000)
public void testRun() throws Exception {
    ArgumentCaptor<JSONObject> commentCaptor = ArgumentCaptor.forClass(JSONObject.class);
    ArgumentCaptor<JSONObject> postCaptor = ArgumentCaptor.forClass(JSONObject.class);


    ExecutorService service = Executors.newSingleThreadExecutor();
    service.execute(aggregatorRunnable);
    Thread.sleep(TIME_TO_RUN);
    aggregatorRunnable.stop();

    Mockito.verify(queueService, atLeastOnce()).enqueueComment(commentCaptor.capture());
    Mockito.verify(queueService, atLeastOnce()).enqueuePost(postCaptor.capture());
    List<JSONObject> capturedComments = commentCaptor.getAllValues();
    List<JSONObject> capturedPosts = commentCaptor.getAllValues();

    Assert.assertTrue(capturedComments.size() > 100);
    Assert.assertTrue(capturedPosts.size() > 100);
}
项目:bird-java    文件:AbstractServiceImpl.java   
/**
 * 根据id集合获取数据
 *
 * @param ids id集合
 */
public List<T> getList(List<Long> ids) {
    List<T> list = InstanceHelper.newArrayList();
    if (ids != null) {
        for (int i = 0; i < ids.size(); i++) {
            list.add(null);
        }
        ExecutorService executorService = Executors.newFixedThreadPool(10);
        for (int i = 0; i < ids.size(); i++) {
            final int index = i;
            executorService.execute(() -> list.set(index, queryById(ids.get(index))));
        }
        executorService.shutdown();
        try {
            executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);
        } catch (InterruptedException e) {
            logger.error("awaitTermination", "", e);
        }
    }
    return list;
}
项目:jdk8u-jdk    文件:CallerSensitiveFinder.java   
public List<String> run(List<Path> classes) throws IOException, InterruptedException,
        ExecutionException, ConstantPoolException
{
    ExecutorService pool = Executors.newFixedThreadPool(numThreads);
    for (Path path : classes) {
        ClassFileReader reader = ClassFileReader.newInstance(path);
        for (ClassFile cf : reader.getClassFiles()) {
            String classFileName = cf.getName();
            // for each ClassFile
            //    parse constant pool to find matching method refs
            //      parse each method (caller)
            //      - visit and find method references matching the given method name
            pool.submit(getTask(cf));
        }
    }
    waitForCompletion();
    pool.shutdown();
    return csMethodsMissingAnnotation;
}
项目:openjdk-jdk10    文件:MissingTrailingSpace.java   
public static void main(String[] args) throws Exception {
    HttpServer server = HttpServer.create(new InetSocketAddress(0), 0);
    try {
        server.setExecutor(Executors.newFixedThreadPool(1));
        server.createContext(someContext, new HttpHandler() {
            @Override
            public void handle(HttpExchange msg) {
                try {
                    try {
                        msg.sendResponseHeaders(noMsgCode, -1);
                    } catch(IOException ioe) {
                        ioe.printStackTrace();
                    }
                } finally {
                    msg.close();
                }
            }
        });
        server.start();
        System.out.println("Server started at port "
                           + server.getAddress().getPort());

        runRawSocketHttpClient("localhost", server.getAddress().getPort());
    } finally {
        ((ExecutorService)server.getExecutor()).shutdown();
        server.stop(0);
    }
    System.out.println("Server finished.");
}
项目:Nird2    文件:LifecycleManagerImpl.java   
@Inject
LifecycleManagerImpl(DatabaseComponent db, EventBus eventBus,
        CryptoComponent crypto, AuthorFactory authorFactory,
        IdentityManager identityManager) {
    this.db = db;
    this.eventBus = eventBus;
    this.crypto = crypto;
    this.authorFactory = authorFactory;
    this.identityManager = identityManager;
    services = new CopyOnWriteArrayList<Service>();
    clients = new CopyOnWriteArrayList<Client>();
    executors = new CopyOnWriteArrayList<ExecutorService>();
}
项目:firebase-admin-java    文件:FirebaseThreadManagersTest.java   
@Test
public void testGlobalThreadManagerWithMultipleApps() {
  MockThreadManager threadManager = new MockThreadManager();
  FirebaseOptions options = new FirebaseOptions.Builder()
      .setCredentials(new MockGoogleCredentials())
      .build();
  FirebaseApp defaultApp = FirebaseApp.initializeApp(options);
  FirebaseApp customApp = FirebaseApp.initializeApp(options, "customApp");
  assertEquals(0, threadManager.initCount);

  ExecutorService exec1 = threadManager.getExecutor(defaultApp);
  ExecutorService exec2 = threadManager.getExecutor(customApp);
  assertEquals(1, threadManager.initCount);
  assertFalse(exec1.isShutdown());

  // Should return the same executor for both invocations.
  assertSame(exec1, exec2);

  threadManager.releaseExecutor(defaultApp, exec1);
  assertFalse(exec1.isShutdown());

  threadManager.releaseExecutor(customApp, exec2);
  assertTrue(exec1.isShutdown());
}
项目:think-in-java    文件:ThreadLocalVariableHolder.java   
public static void main(String[] args) throws Exception
{
    ExecutorService exec = Executors.newCachedThreadPool();
    for (int i = 0; i < 5; i++)
    {
        exec.execute(new Accessor(i));
    }
    TimeUnit.SECONDS.sleep(3); // Run for a while
    exec.shutdownNow(); // All Accessors will quit
}
项目:hadoop    文件:TestByteArrayManager.java   
@Test
public void testCounter() throws Exception {
  final long countResetTimePeriodMs = 200L;
  final Counter c = new Counter(countResetTimePeriodMs);

  final int n = DFSUtil.getRandom().nextInt(512) + 512;
  final List<Future<Integer>> futures = new ArrayList<Future<Integer>>(n);

  final ExecutorService pool = Executors.newFixedThreadPool(32);
  try {
    // increment
    for(int i = 0; i < n; i++) {
      futures.add(pool.submit(new Callable<Integer>() {
        @Override
        public Integer call() throws Exception {
          return (int)c.increment();
        }
      }));
    }

    // sort and wait for the futures
    Collections.sort(futures, CMP);
  } finally {
    pool.shutdown();
  }

  // check futures
  Assert.assertEquals(n, futures.size());
  for(int i = 0; i < n; i++) {
    Assert.assertEquals(i + 1, futures.get(i).get().intValue());
  }
  Assert.assertEquals(n, c.getCount());

  // test auto-reset
  Thread.sleep(countResetTimePeriodMs + 100);
  Assert.assertEquals(1, c.increment());
}
项目:apache-tomcat-7.0.73-with-comment    文件:AsyncChannelGroupUtil.java   
private static AsynchronousChannelGroup createAsynchronousChannelGroup() {
    // Need to do this with the right thread context class loader else the
    // first web app to call this will trigger a leak
    ClassLoader original = Thread.currentThread().getContextClassLoader();

    try {
        Thread.currentThread().setContextClassLoader(
                AsyncIOThreadFactory.class.getClassLoader());

        // These are the same settings as the default
        // AsynchronousChannelGroup
        int initialSize = Runtime.getRuntime().availableProcessors();
        ExecutorService executorService = new ThreadPoolExecutor(
                0,
                Integer.MAX_VALUE,
                Long.MAX_VALUE, TimeUnit.MILLISECONDS,
                new SynchronousQueue<Runnable>(),
                new AsyncIOThreadFactory());

        try {
            return AsynchronousChannelGroup.withCachedThreadPool(
                    executorService, initialSize);
        } catch (IOException e) {
            // No good reason for this to happen.
            throw new IllegalStateException(sm.getString("asyncChannelGroup.createFail"));
        }
    } finally {
        Thread.currentThread().setContextClassLoader(original);
    }
}
项目:ditb    文件:ConnectionManager.java   
@Override
@Deprecated
public void processBatch(List<? extends Row> list,
    final TableName tableName,
    ExecutorService pool,
    Object[] results) throws IOException, InterruptedException {
  // This belongs in HTable!!! Not in here.  St.Ack

  // results must be the same size as list
  if (results.length != list.size()) {
    throw new IllegalArgumentException(
      "argument results must be the same size as argument list");
  }
  processBatchCallback(list, tableName, pool, results, null);
}
项目:openjdk-jdk10    文件:ThreadPoolExecutorSubclassTest.java   
/**
 * invokeAll(c) throws NPE if c has null elements
 */
public void testInvokeAll3() throws Exception {
    final ExecutorService e =
        new CustomTPE(2, 2,
                      LONG_DELAY_MS, MILLISECONDS,
                      new ArrayBlockingQueue<Runnable>(10));
    try (PoolCleaner cleaner = cleaner(e)) {
        List<Callable<String>> l = new ArrayList<>();
        l.add(new StringTask());
        l.add(null);
        try {
            e.invokeAll(l);
            shouldThrow();
        } catch (NullPointerException success) {}
    }
}
项目:vind    文件:CompletableSearchServer.java   
private CompletableSearchServer(SearchServer backend, Executor executor, boolean shutdownExecutorOnClose) {
    if(shutdownExecutorOnClose && !(executor instanceof ExecutorService)) {
        throw new IllegalArgumentException("shutdownExecutorOnClose requires 'executor' being an 'ExecutorService', actually got: " + executor.getClass());
    }
    this.backend = backend;
    this.executor = executor;
    this.shutdownExecutorOnClose = shutdownExecutorOnClose;
}
项目:decoy    文件:NimTaskExecutor.java   
private ExecutorService createExecutor(Config config) {
    ThreadPoolExecutor service = new ThreadPoolExecutor(config.core, config.max, config.timeout,
            TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(QUEUE_INIT_CAPACITY),
            new TaskThreadFactory(name), new ThreadPoolExecutor.DiscardPolicy());

    allowCoreThreadTimeOut(service, config.allowCoreTimeOut);

    return service;
}
项目:okhttp-byte-counter    文件:Crawler.java   
private void parallelDrainQueue(int threadCount) {
  ExecutorService executor = Executors.newFixedThreadPool(threadCount);
  for (int i = 0; i < threadCount; i++) {
    executor.execute(new NamedRunnable("Crawler %s", i) {
      @Override protected void execute() {
        try {
          drainQueue();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    });
  }
  executor.shutdown();
}
项目:openjdk-jdk10    文件:ForkJoinPoolTest.java   
/**
 * invokeAny(c) throws NullPointerException if c has null elements
 */
public void testInvokeAny4() throws Throwable {
    CountDownLatch latch = new CountDownLatch(1);
    ExecutorService e = new ForkJoinPool(1);
    try (PoolCleaner cleaner = cleaner(e)) {
        List<Callable<String>> l = new ArrayList<>();
        l.add(latchAwaitingStringTask(latch));
        l.add(null);
        try {
            e.invokeAny(l);
            shouldThrow();
        } catch (NullPointerException success) {}
        latch.countDown();
    }
}
项目:syndesis    文件:DefaultProjectGenerator.java   
@SuppressWarnings("resource")
@Override
public InputStream generate(Integration integration) throws IOException {
    final PipedInputStream is = new PipedInputStream();
    final ExecutorService executor = Executors.newSingleThreadExecutor();
    final PipedOutputStream os = new PipedOutputStream(is);

    executor.execute(generateAddProjectTarEntries(integration, os));

    return is;
}
项目:java-concurrent    文件:TracedExecutorServiceTest.java   
@Test
public void testExecuteRunnable() throws InterruptedException {
  ExecutorService executorService = toTraced(Executors.newFixedThreadPool(NUMBER_OF_THREADS));

  MockSpan parentSpan = mockTracer.buildSpan("foo").startManual();
  mockTracer.scopeManager().activate(parentSpan, true);
  executorService.execute(new TestRunnable());

  countDownLatch.await();
  assertParentSpan(parentSpan);
  assertEquals(1, mockTracer.finishedSpans().size());
}
项目:GitHub    文件:TestHelper.java   
@SuppressWarnings("Finally")
public static void exitOrThrow(ExecutorService executorService, CountDownLatch testFinishedSignal, LooperTest test) throws Throwable {

    // Waits for the signal indicating the test's use case is done.
    try {
        // Even if this fails we want to try as hard as possible to cleanup. If we fail to close all resources
        // properly, the `after()` method will most likely throw as well because it tries do delete any Realms
        // used. Any exception in the `after()` code will mask the original error.
        TestHelper.awaitOrFail(testFinishedSignal);
    } finally {
        Looper looper = test.getLooper();
        if (looper != null) {
            // Failing to quit the looper will not execute the finally block responsible
            // of closing the Realm.
            looper.quit();
        }

        // Waits for the finally block to execute and closes the Realm.
        TestHelper.awaitOrFail(test.getRealmClosedSignal());
        // Closes the executor.
        // This needs to be called after waiting since it might interrupt waitRealmThreadExecutorFinish().
        executorService.shutdownNow();

        Throwable fault = test.getAssertionError();
        if (fault != null) {
            // Throws any assertion errors happened in the background thread.
            throw fault;
        }
    }
}
项目:decoy    文件:TaskExecutor.java   
public void shutdown() {
    ExecutorService executor = null;

    synchronized (this) {
        // swap
        if (service != null) {
            executor = service;
            service = null;
        }
    }

    if (executor != null) {
        // shutdown
        if (!executor.isShutdown()) {
            executor.shutdown();
        }

        // recycle
        executor = null;
    }
}