当前位置: 首页>>代码示例>>Java>>正文


Java ExecutorService.shutdown方法代码示例

本文整理汇总了Java中java.util.concurrent.ExecutorService.shutdown方法的典型用法代码示例。如果您正苦于以下问题:Java ExecutorService.shutdown方法的具体用法?Java ExecutorService.shutdown怎么用?Java ExecutorService.shutdown使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.util.concurrent.ExecutorService的用法示例。


在下文中一共展示了ExecutorService.shutdown方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: main

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
public static void main(String[] args) throws Exception
{
    // All must share a single CountDownLatch object:
    CountDownLatch latch = new CountDownLatch(5);
    ExecutorService exec = Executors.newCachedThreadPool();
    for (int i = 0; i < 5; i++)
    {
        exec.execute(new Entrance3(latch, i));
    }
    TimeUnit.SECONDS.sleep(3);
    Entrance3.cancel();
    exec.shutdown();
    latch.await(); // Wait for results
    System.out.println("Total: " + Entrance3.getTotalCount());
    System.out.println("Sum of Entrances: " + Entrance3.sumEntrances());
}
 
开发者ID:baohongfei,项目名称:think-in-java,代码行数:17,代码来源:E32_OrnamentalGarden3.java

示例2: testDubboMultiThreadInvoke

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
public void testDubboMultiThreadInvoke() throws Exception
{
    Exporter<?> rpcExporter = protocol.export(proxy.getInvoker(new DemoServiceImpl(), DemoService.class, URL.valueOf("dubbo://127.0.0.1:20259/TestService")));
	
	final AtomicInteger counter = new AtomicInteger();
	final DemoService service = proxy.getProxy(protocol.refer(DemoService.class, URL.valueOf("dubbo://127.0.0.1:20259/TestService")));
	assertEquals(service.getSize(new String[]{"123", "456", "789"}), 3);

	final StringBuffer sb = new StringBuffer();
	for(int i=0;i<1024*64+32;i++)
		sb.append('A');
	assertEquals(sb.toString(), service.echo(sb.toString()));

	ExecutorService exec = Executors.newFixedThreadPool(10);
	for(int i=0;i<10;i++)
	{
		final int fi = i;
		exec.execute(new Runnable(){
			public void run()
			{
				for(int i=0;i<30;i++)
				{
					System.out.println(fi+":"+counter.getAndIncrement());
					assertEquals(service.echo(sb.toString()), sb.toString());
				}
			}
		});
	}
	exec.shutdown();
	exec.awaitTermination(10, TimeUnit.SECONDS);
	rpcExporter.unexport();
}
 
开发者ID:flychao88,项目名称:dubbocloud,代码行数:33,代码来源:MultiThreadTest.java

示例3: process

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
public final void process(final ArrayList<Object> arraylist, final int threadPoolSize) {
    final ExecutorService executor = Executors.newFixedThreadPool(threadPoolSize);
    if(arraylist.size() >= threadPoolSize && arraylist.size() >= MINARRAYLISTSIZE) {
        final int steps = arraylist.size() / threadPoolSize;
        for(int i = 0; i < threadPoolSize; i++) {
            final int u = i;
            Runnable run = new Runnable() {
                
                @Override
                public void run() {
                    final int extra = ((u == threadPoolSize - 1) ? (steps * threadPoolSize) - arraylist.size() : 0);
                    for(int z = 0; z < steps + extra; z++) {
                        final int pos = (u * steps + z);
                        arraylist.set(pos, process(arraylist.get(pos)));
                    }
                }
                
            };
            executor.execute(run);
        }
        executor.shutdown();
        try {
            executor.awaitTermination(1, TimeUnit.DAYS);
        } catch (Exception ex) {
        }
    } else {
        for(int i = 0; i < arraylist.size(); i++) {
            arraylist.set(i, process(arraylist.get(i)));
        }
    }
}
 
开发者ID:Panzer1119,项目名称:JAddOn,代码行数:32,代码来源:ArrayListProcess.java

示例4: waitForTask

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
private void waitForTask() throws Exception {
    if (!DirectByteBufferPool.initInstance(config.getByteBufferSize(), Config.getMaxTakePollIter())) {
        // this is really wrong ... It cannot be already initialized
        throw new FDTProcolException("The buffer pool cannot be already initialized");
    }

    ExecutorService executor = null;
    ServerSocketChannel ssc = null;
    ServerSocket ss = null;
    Selector sel = null;
    try {
        executor = Utils.getStandardExecService("[ Acceptable ServersThreadPool ] ",
                2,
                10,
                new ArrayBlockingQueue<Runnable>(65500),
                Thread.NORM_PRIORITY - 2);
        ssc = ServerSocketChannel.open();
        ssc.configureBlocking(false);
        ss = ssc.socket();
        ss.bind(new InetSocketAddress(config.getPort()));
        sel = Selector.open();
        ssc.register(sel, SelectionKey.OP_ACCEPT);
        System.out.println("READY");
        Utils.waitAndWork(executor, ss, sel, config);
    } finally {
        logger.log(Level.INFO, "[FDT] [ waitForTask ] main loop FINISHED!");
        // close all the stuff
        Utils.closeIgnoringExceptions(ssc);
        Utils.closeIgnoringExceptions(sel);
        Utils.closeIgnoringExceptions(ss);
        if (executor != null) {
            executor.shutdown();
        }
    }
}
 
开发者ID:fast-data-transfer,项目名称:fdt,代码行数:36,代码来源:FDT.java

示例5: shutdownExecutor

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
public static void shutdownExecutor(ExecutorService executor) {
    executor.shutdown();
    try {
        executor.awaitTermination(10, TimeUnit.SECONDS);
    } catch (InterruptedException e) {
        Thread.currentThread().interrupt();
    }
    if (! executor.isTerminated()) {
        Logger.logShutdownMessage("some threads didn't terminate, forcing shutdown");
        executor.shutdownNow();
    }
}
 
开发者ID:muhatzg,项目名称:burstcoin,代码行数:13,代码来源:ThreadPool.java

示例6: main

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
public static void main(String[] args){
            //ExecutorService 的生命周期包括三种状态:运行、关闭、终止。创建后便进入运行状态,当调用了 shutdown()方法时
            // ,便进入关闭状态,此时意味着 ExecutorService 不再接受新的任务,但它还在执行已经提交了的任务
          ExecutorService executorService = Executors.newCachedThreadPool();
//          ExecutorService executorService = Executors.newFixedThreadPool(5);
            //创建一个单线程化的Executor。
//          ExecutorService executorService = Executors.newSingleThreadExecutor();
            for (int i = 0; i < 5; i++){
                executorService.execute(new Runnable() {
                    @Override
                    public void run() {
                        System.out.println(Thread.currentThread().getName() + "线程被调用了。");
                    }
                });
                System.out.println("************* a" + i + " *************");
            }
            executorService.shutdown();
        }
 
开发者ID:java-webbee,项目名称:webBee,代码行数:19,代码来源:Executor.java

示例7: getList

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
/** 根据Id查询(cls返回类型Class) */
public <K> List<K> getList(List<Long> ids, Class<K> cls) {
	List<K> list = InstanceUtil.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(new Runnable() {
				public void run() {
					T t = queryById(ids.get(index));
					K k = InstanceUtil.to(t, cls);
					list.set(index, k);
				}
			});
		}
		executorService.shutdown();
		try {
			executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);
		} catch (InterruptedException e) {
			logger.error("awaitTermination", "", e);
		}
	}
	return list;
}
 
开发者ID:guokezheng,项目名称:automat,代码行数:28,代码来源:BaseService.java

示例8: run

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
/**
 * Runs the command.
 *
 * @param command the list of command line tokens
 * @return the output of the command as a list of lines
 * @throws GradleException if the command exited with non-zero exit code
 */
public List<String> run(List<String> command) throws IOException, InterruptedException {
  if (logger != null) {
    logger.debug("Running command : " + String.join(" ", command));
  }

  ExecutorService executor = executorServiceFactory.createExecutorService();

  // Builds the command to execute.
  ProcessBuilder processBuilder = processBuilderFactory.createProcessBuilder();
  processBuilder.command(command);
  processBuilder.redirectErrorStream(true);
  if (environment != null) {
    processBuilder.environment().putAll(environment);
  }
  final Process process = processBuilder.start();

  // Runs the command and streams the output.
  List<String> output = new ArrayList<>();
  executor.execute(outputConsumerRunnable(process, output));
  int exitCode = process.waitFor();

  // Shuts down the executor.
  executor.shutdown();

  try {
    executor.awaitTermination(TIMEOUT_SECONDS, TimeUnit.SECONDS);
  } catch (InterruptedException ex) {
    if (logger != null) {
      logger.debug("Task Executor interrupted waiting for output consumer thread");
    }
  }

  // Stops the build if the command fails to do something, we may want to make this configurable.
  if (exitCode != 0) {
    throw new GradleException("command exited with non-zero exit code : " + exitCode);
  }

  return output;
}
 
开发者ID:GoogleCloudPlatform,项目名称:minikube-build-tools-for-java,代码行数:47,代码来源:CommandExecutor.java

示例9: read

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
public DexApplication read() throws IOException, ExecutionException {
  ExecutorService executor = Executors.newSingleThreadExecutor();
  try {
    return read(executor);
  } finally {
    executor.shutdown();
  }
}
 
开发者ID:inferjay,项目名称:r8,代码行数:9,代码来源:ApplicationReader.java

示例10: main

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
public static void main(String[] args)
{
	ExecutorService exec = Executors.newCachedThreadPool();
	for (int i = 0; i < 5; i++)
	{
		exec.execute(new SimplePriorities(Thread.MIN_PRIORITY));
	}
	exec.execute(new SimplePriorities(Thread.MAX_PRIORITY));
	exec.shutdown();
}
 
开发者ID:baohongfei,项目名称:think-in-java,代码行数:11,代码来源:SimplePriorities.java

示例11: testFailedCommandWithConnectionCloseCmdBehavior

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
/**
 * Regression test for VSTS Bug# 3936154 - Execute a command that will result in a failure in a loop - Without the fix (disabling the command
 * behavior)s, the test will not respond and timeout.
 */
@Test
@Category(value = ExcludeFromGatedCheckin.class)
public final void testFailedCommandWithConnectionCloseCmdBehavior() {
    ExecutorService exec = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
    try {
        for (int i = 0; i < 100; i++) {
            int index = i;
            exec.submit(() -> {
                try (MultiShardStatement stmt = shardConnection.createCommand()) {
                    stmt.setCommandText("select * from table_does_not_exist");

                    try (MultiShardResultSet sdr = stmt.executeQuery()) {
                        while (sdr.next()) {
                        }
                    }
                }
                catch (Exception ex) {
                    System.out.printf("Encountered exception: %1$s in iteration: %2$s \r\n", ex.toString(), index);
                }
                finally {
                    System.out.printf("Completed execution of iteration: %1$s" + "\r\n", index);
                }
            });
        }
    }
    finally {
        exec.shutdown();
    }
}
 
开发者ID:Microsoft,项目名称:elastic-db-tools-for-java,代码行数:34,代码来源:MultiShardQueryE2ETests.java

示例12: main

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
public static void main(String[] args) throws Throwable {
    final String[] algorithmNames = {
        "PBKDF2WITHHMACSHA1",
        "PBEWITHMD5ANDDES",
        "DSA",
        "SHA384WITHRSA",
        "RSA",
        "SHA1WITHDSA",
        "SHA512WITHRSA",
        "MD2WITHRSA",
        "PBEWITHSHA1ANDDESEDE",
        "SHA1WITHRSA",
        "DIFFIEHELLMAN",
        "MD5WITHRSA",
        "PBEWITHSHA1ANDRC2_40",
        "SHA256WITHRSA",
    };

    final int THREADS = 2;
    final ExecutorService pool = Executors.newFixedThreadPool(THREADS);
    final CountDownLatch startingGate = new CountDownLatch(THREADS);
    final Runnable r = new Runnable() { public void run() {
        startingGate.countDown();
        do {} while (startingGate.getCount() > 0);
        try {
            for (String algorithmName : algorithmNames)
                AlgorithmId.get(algorithmName);
        } catch (Throwable fail) {
            throw new AssertionError(fail);
        }
    }};
    final ArrayList<Future<?>> futures = new ArrayList<>();
    for (int i = 0; i < THREADS; i++)
        futures.add(pool.submit(r));
    pool.shutdown();
    for (Future<?> future : futures) future.get();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:38,代码来源:OidTableInit.java

示例13: getPage

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
/** 根据Id查询(cls返回类型Class) */
public <K> Page<K> getPage(final Page<Long> ids, final Class<K> cls) {
	if (ids != null) {
		Page<K> page = new Page<K>(ids.getCurrent(), ids.getSize());
		page.setTotal(ids.getTotal());
		final List<K> records = InstanceUtil.newArrayList();
		for (int i = 0; i < ids.getRecords().size(); i++) {
			records.add(null);
		}
		int thread = Math.min(maxThread, Math.max(1, records.size() / 2));
		ExecutorService executorService = Executors.newFixedThreadPool(thread);
		for (int i = 0; i < ids.getRecords().size(); i++) {
			final int index = i;
			executorService.execute(new Runnable() {
				public void run() {
					T t = queryById(ids.getRecords().get(index));
					K k = InstanceUtil.to(t, cls);
					records.set(index, k);
				}
			});
		}
		executorService.shutdown();
		try {
			executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);
		} catch (InterruptedException e) {
			logger.error("awaitTermination", "", e);
		}
		page.setRecords(records);
		return page;
	}
	return new Page<K>();
}
 
开发者ID:youngMen1,项目名称:JAVA-,代码行数:33,代码来源:BaseService.java

示例14: run

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
@Override
public void run() {
	ExecutorService execServ = Executors.newFixedThreadPool(THREADS_NUM);
	List<Future<ModelConfigurationResult>> futures = new Vector<>();

	/*for (int cI = 0; cI<steps; cI++)
		for (int gammaI = 0; gammaI<steps ; gammaI++){
			double c = TuneModelLibSvm.computeExpParameter(cMax, cMin, kappaC, cI, steps);
			double gamma = TuneModelLibSvm.computeExpParameter(gammaMax, gammaMin, kappaGamma, gammaI, steps);
			futures.add(execServ.submit(pt.cloneWithGammaC(gamma, c)));
		}*/
	for (int cI = 0; cI < steps; cI++) {
		double c = TuneModelLibSvm.computeExpParameter(cMax, cMin, kappaC, cI, steps);
		futures.add(execServ.submit(pt.cloneWithGammaC(origGamma, c)));
	}
	for (int gammaI = 0; gammaI < steps; gammaI++) {
		double gamma = TuneModelLibSvm.computeExpParameter(gammaMax, gammaMin, kappaGamma, gammaI, steps);
		futures.add(execServ.submit(pt.cloneWithGammaC(gamma, origC)));
	}
	futures.add(execServ.submit(pt.cloneWithGammaC(origGamma, origC)));
	for (Future<ModelConfigurationResult> future : futures)
		try {
			ModelConfigurationResult res = future.get();
			scoreBoard.add(res);
		} catch (InterruptedException | ExecutionException | Error e) {
			throw new RuntimeException(e);
		}
	execServ.shutdown();
}
 
开发者ID:marcocor,项目名称:smaph,代码行数:30,代码来源:TuneModelLibSvm.java

示例15: testMovingBackToHigherPriority

import java.util.concurrent.ExecutorService; //导入方法依赖的package包/类
@Test
public void testMovingBackToHigherPriority() {
    final int parallelTasks = 10;
    PriorityTaskQueue pq = new PriorityTaskQueue(parallelTasks, () -> null, s -> {
    });

    AtomicBoolean test = new AtomicBoolean(false);
    AtomicInteger errors = new AtomicInteger();
    AtomicInteger doneCounter = new AtomicInteger();
    pq.addTask(10, q1 -> {
        q1.addTask(9, q2 -> {
            q2.addTask(7, q3 -> {
                if (!test.compareAndSet(false, true)) {
                    errors.incrementAndGet();
                }
                doneCounter.incrementAndGet();
            });
            q2.addTask(8, q3 -> {
                if (!test.compareAndSet(true, false)) {
                    errors.incrementAndGet();
                }
                doneCounter.incrementAndGet();
            });
            doneCounter.incrementAndGet();
        });
        doneCounter.incrementAndGet();
    });

    ExecutorService executorService = Executors.newCachedThreadPool();
    Queue<Exception> exceptions = new LinkedList<>();
    assertThat(
        pq.executeTasksAndAwaitDone(executorService, exceptions::offer, 1, TimeUnit.SECONDS),
        is(true));
    assertThat(exceptions.size(), is(0));
    assertThat(errors.get(), is(0));
    assertThat(doneCounter.get(), is(4));
    executorService.shutdown();
}
 
开发者ID:systek,项目名称:dataflow,代码行数:39,代码来源:PriorityTaskQueueTest.java


注:本文中的java.util.concurrent.ExecutorService.shutdown方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。