Java Code Examples for java.util.concurrent.ThreadPoolExecutor#CallerRunsPolicy
The following examples show how to use
java.util.concurrent.ThreadPoolExecutor#CallerRunsPolicy .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AsynchronousTlsChannelGroup.java From tls-channel with MIT License | 6 votes |
/** * Creates an instance of this class. * * @param nThreads number of threads in the executor used to assist the selector loop and run * completion handlers. */ public AsynchronousTlsChannelGroup(int nThreads) { try { selector = Selector.open(); } catch (IOException e) { throw new RuntimeException(e); } timeoutExecutor.setRemoveOnCancelPolicy(true); this.executor = new ThreadPoolExecutor( nThreads, nThreads, 0, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(nThreads * queueLengthMultiplier), runnable -> new Thread(runnable, String.format("async-channel-group-%d-handler-executor", id)), new ThreadPoolExecutor.CallerRunsPolicy()); selectorThread.start(); }
Example 2
Source File: DataMigrator.java From Mycat2 with GNU General Public License v3.0 | 6 votes |
private void clearData(Map<File,DataNode> map,TableMigrateInfo table){ if(table.isError()) { return; } ExecutorService executor = new ThreadPoolExecutor(margs.getThreadCount(), margs.getThreadCount(), 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(),new ThreadPoolExecutor.CallerRunsPolicy()); Iterator<Entry<File,DataNode>> it = map.entrySet().iterator(); while(it.hasNext()){ Entry<File,DataNode> et = it.next(); File f =et.getKey(); DataNode srcDn = et.getValue(); executor.execute(new DataClearRunner(table, srcDn, f)); } executor.shutdown(); while(true){ if(executor.isTerminated()){ break; } try { Thread.sleep(200); } catch (InterruptedException e) { LOGGER.error("error",e); } } }
Example 3
Source File: ConsumerHeartbeatController.java From pmq with Apache License 2.0 | 6 votes |
@PostConstruct private void init() { heartBeatThreadSize = soaConfig.getHeartBeatThreadSize(); executor = new ThreadPoolExecutor(1, 1, 3L, TimeUnit.SECONDS, new ArrayBlockingQueue<>(10), SoaThreadFactory.create("heartbeat",Thread.MAX_PRIORITY, true), new ThreadPoolExecutor.CallerRunsPolicy()); executorRun = new ThreadPoolExecutor(heartBeatThreadSize, heartBeatThreadSize, 10L, TimeUnit.SECONDS, new ArrayBlockingQueue<>(5000), SoaThreadFactory.create("heartbeat-run",Thread.MAX_PRIORITY-1, true), new ThreadPoolExecutor.CallerRunsPolicy()); soaConfig.registerChanged(new Runnable() { @Override public void run() { if (heartBeatThreadSize != soaConfig.getHeartBeatThreadSize()) { heartBeatThreadSize = soaConfig.getHeartBeatThreadSize(); executorRun.setCorePoolSize(heartBeatThreadSize); executorRun.setMaximumPoolSize(heartBeatThreadSize); } } }); executor.execute(() -> { heartbeat(); }); }
Example 4
Source File: DynamicallySizedThreadPoolExecutorTest.java From alfresco-core with GNU Lesser General Public License v3.0 | 6 votes |
private DynamicallySizedThreadPoolExecutor createInstance(int corePoolSize, int maximumPoolSize, int keepAliveTime) { // We need a thread factory TraceableThreadFactory threadFactory = new TraceableThreadFactory(); threadFactory.setThreadDaemon(true); threadFactory.setThreadPriority(Thread.NORM_PRIORITY); BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<Runnable>(); return new DynamicallySizedThreadPoolExecutor( corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.SECONDS, workQueue, threadFactory, new ThreadPoolExecutor.CallerRunsPolicy()); }
Example 5
Source File: MqttClientService.java From activemq-artemis with Apache License 2.0 | 6 votes |
@PostConstruct public void init() throws MqttException { final String serverURI = "tcp://localhost:1883"; final MqttConnectOptions options = new MqttConnectOptions(); options.setAutomaticReconnect(true); options.setCleanSession(false); options.setMaxInflight(1000); options.setServerURIs(new String[] {serverURI}); options.setMqttVersion(MQTT_VERSION_3_1_1); final ThreadFactory threadFactory = new DefaultThreadFactory("mqtt-client-exec"); executorService = new ScheduledThreadPoolExecutor(corePoolSize, threadFactory, new ThreadPoolExecutor.CallerRunsPolicy()); mqttClient = new MqttClient(serverURI, clientId, persistence, executorService); mqttClient.setTimeToWait(-1); mqttClient.connect(options); mqttClient.setCallback(this); log.debugf("[MQTT][Connected][client: %s]", clientId); }
Example 6
Source File: BatchWriter.java From examples with Apache License 2.0 | 6 votes |
public BatchWriter(EmbeddedSolrServer solr, int batchSize, TaskID tid, int writerThreads, int queueSize) { this.solr = solr; this.writerThreads = writerThreads; this.queueSize = queueSize; taskId = tid; // we need to obtain the settings before the constructor if (writerThreads != 0) { batchPool = new ThreadPoolExecutor(writerThreads, writerThreads, 5, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(queueSize), new ThreadPoolExecutor.CallerRunsPolicy()); } else { // single threaded case batchPool = null; } }
Example 7
Source File: CustomizedParallelFetchTest.java From multi-task with Apache License 2.0 | 6 votes |
/** * 通过客户端线程池并行查询测试 */ @Test public void testParallelFetchByClientExecutorPool() { ExecutorService threadPool = new ThreadPoolExecutor(2, 5, 10, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(2), new ThreadPoolExecutor.CallerRunsPolicy()); QueryParam qp = new QueryParam(); new TaskPair("deviceStatFetcher", DeviceRequest.build(qp)); MultiResult ctx = parallelExePool.submit( threadPool, new TaskPair("deviceStatFetcher", DeviceRequest.build(qp)), new TaskPair("deviceUvFetcher", DeviceRequest.build(qp))); List<DeviceViewItem> stat = ctx.getResult("deviceStatFetcher"); List<DeviceViewItem> uv = ctx.getResult("deviceUvFetcher"); Assert.notEmpty(stat); Assert.notEmpty(uv); System.out.println(stat); System.out.println(uv); }
Example 8
Source File: DynamoDbDelegate.java From dynamodb-janusgraph-storage-backend with Apache License 2.0 | 6 votes |
static ThreadPoolExecutor getPoolFromNs(final Configuration ns) { final int maxQueueSize = ns.get(Constants.DYNAMODB_CLIENT_EXECUTOR_QUEUE_MAX_LENGTH); final ThreadFactory factory = new ThreadFactoryBuilder().setNameFormat("getDelegate-%d").build(); //begin adaptation of constructor at //https://github.com/buka/titan/blob/master/src/main/java/com/thinkaurelius/titan/diskstorage/dynamodb/DynamoDBClient.java#L104 final int maxPoolSize = ns.get(Constants.DYNAMODB_CLIENT_EXECUTOR_MAX_POOL_SIZE); final int corePoolSize = ns.get(Constants.DYNAMODB_CLIENT_EXECUTOR_CORE_POOL_SIZE); final long keepAlive = ns.get(Constants.DYNAMODB_CLIENT_EXECUTOR_KEEP_ALIVE); final ThreadPoolExecutor executor = new ThreadPoolExecutor(corePoolSize, maxPoolSize, keepAlive, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(maxQueueSize), factory, new ThreadPoolExecutor.CallerRunsPolicy()); //end adaptation of constructor at //https://github.com/buka/titan/blob/master/src/main/java/com/thinkaurelius/titan/diskstorage/dynamodb/DynamoDBClient.java#L104 executor.allowCoreThreadTimeOut(false); executor.prestartAllCoreThreads(); return executor; }
Example 9
Source File: BatchTestCaseExecution.java From LuckyFrameClient with GNU Affero General Public License v3.0 | 5 votes |
/** * �����̳߳أ����߳�ִ������ * @param taskid ����ID * @param batchcase ���������ַ�����#���� * @throws Exception ���쳣 */ public static void batchCaseExecuteForTast(String taskid, String batchcase) throws Exception{ int threadcount = GetServerApi.cGetTaskSchedulingByTaskId(Integer.parseInt(taskid)).getExThreadCount(); ThreadPoolExecutor threadExecute = new ThreadPoolExecutor(threadcount, 30, 3, TimeUnit.SECONDS, new ArrayBlockingQueue<>(1000), new ThreadPoolExecutor.CallerRunsPolicy()); //ִ��ȫ���dzɹ�״̬���� if(batchcase.contains("ALLFAIL")){ //��ʼ��д��������Լ���־ģ�� serverOperation caselog = new serverOperation(); List<Integer> caseIdList = caselog.getCaseListForUnSucByTaskId(taskid); for (Integer integer : caseIdList) { ProjectCase testcase = GetServerApi.cGetCaseByCaseId(integer); TestControl.THREAD_COUNT++; //���̼߳���++�����ڼ���߳��Ƿ�ȫ��ִ���� threadExecute.execute(new ThreadForBatchCase(testcase.getCaseId(), taskid)); } }else{ //����ִ������ String[] temp=batchcase.split("#"); LogUtil.APP.info("��ǰ����ִ�������й��С�{}��������������...",temp.length); for (String s : temp) { TestControl.THREAD_COUNT++; //���̼߳���++�����ڼ���߳��Ƿ�ȫ��ִ���� threadExecute.execute(new ThreadForBatchCase(Integer.valueOf(s), taskid)); } } //���̼߳��������ڼ���߳��Ƿ�ȫ��ִ���� int i=0; while(TestControl.THREAD_COUNT!=0){ i++; if(i>600){ break; } Thread.sleep(6000); } threadExecute.shutdown(); }
Example 10
Source File: ThreadPoolExecutorTest.java From j2objc with Apache License 2.0 | 5 votes |
/** * execute using CallerRunsPolicy drops task on shutdown */ public void testCallerRunsOnShutdown() { RejectedExecutionHandler h = new ThreadPoolExecutor.CallerRunsPolicy(); final ThreadPoolExecutor p = new ThreadPoolExecutor(1, 1, LONG_DELAY_MS, MILLISECONDS, new ArrayBlockingQueue<Runnable>(1), h); try { p.shutdown(); } catch (SecurityException ok) { return; } try (PoolCleaner cleaner = cleaner(p)) { TrackedNoOpRunnable r = new TrackedNoOpRunnable(); p.execute(r); assertFalse(r.done); } }
Example 11
Source File: EVCacheClientPoolManager.java From EVCache with Apache License 2.0 | 5 votes |
@Inject public EVCacheClientPoolManager(IConnectionBuilder connectionFactoryprovider, EVCacheNodeList evcacheNodeList, EVCacheConfig evcConfig) { instance = this; this.connectionFactoryProvider = connectionFactoryprovider; this.evcacheNodeList = evcacheNodeList; this.evcConfig = evcConfig; this.evcacheEventListenerList = new CopyOnWriteArrayList<EVCacheEventListener>(); String clientCurrentInstanceId = null; if(clientCurrentInstanceId == null) clientCurrentInstanceId= System.getenv("EC2_INSTANCE_ID"); if(clientCurrentInstanceId == null) clientCurrentInstanceId= System.getenv("NETFLIX_INSTANCE_ID"); if(log.isInfoEnabled()) log.info("\nClient Current InstanceId from env = " + clientCurrentInstanceId); if(clientCurrentInstanceId == null && EVCacheConfig.getInstance().getPropertyRepository() != null) clientCurrentInstanceId = EVCacheConfig.getInstance().getPropertyRepository().get("EC2_INSTANCE_ID", String.class).orElse(null).get(); if(clientCurrentInstanceId == null && EVCacheConfig.getInstance().getPropertyRepository() != null) clientCurrentInstanceId = EVCacheConfig.getInstance().getPropertyRepository().get("NETFLIX_INSTANCE_ID", String.class).orElse(null).get(); if(clientCurrentInstanceId != null && !clientCurrentInstanceId.equalsIgnoreCase("localhost")) { this.defaultReadTimeout = EVCacheConfig.getInstance().getPropertyRepository().get("default.read.timeout", Integer.class).orElse(20); if(log.isInfoEnabled()) log.info("\nClient Current InstanceId = " + clientCurrentInstanceId + " which is probably a cloud location. The default.read.timeout = " + defaultReadTimeout); } else { //Assuming this is not in cloud so bump up the timeouts this.defaultReadTimeout = EVCacheConfig.getInstance().getPropertyRepository().get("default.read.timeout", Integer.class).orElse(750); if(log.isInfoEnabled()) log.info("\n\nClient Current InstanceId = " + clientCurrentInstanceId + ". Probably a non-cloud instance. The default.read.timeout = " + defaultReadTimeout + "\n\n"); } this.logEnabledApps = EVCacheConfig.getInstance().getPropertyRepository().get("EVCacheClientPoolManager.log.apps", String.class).orElse("*"); this.defaultRefreshInterval = EVCacheConfig.getInstance().getPropertyRepository().get("EVCacheClientPoolManager.refresh.interval", Integer.class).orElse(60); this.asyncExecutor = new EVCacheScheduledExecutor(Runtime.getRuntime().availableProcessors(),Runtime.getRuntime().availableProcessors(), 30, TimeUnit.SECONDS, new ThreadPoolExecutor.CallerRunsPolicy(), "scheduled"); asyncExecutor.prestartAllCoreThreads(); this.syncExecutor = new EVCacheExecutor(Runtime.getRuntime().availableProcessors(),Runtime.getRuntime().availableProcessors(), 30, TimeUnit.SECONDS, new ThreadPoolExecutor.CallerRunsPolicy(), "pool"); syncExecutor.prestartAllCoreThreads(); initAtStartup(); }
Example 12
Source File: Slicer.java From dawnsci with Eclipse Public License 1.0 | 4 votes |
public static void visitParallel(ISliceViewIterator iterator, final SliceVisitor visitor, int nProcessors) throws Exception { //Can't just farm out each slice to a separate thread, need to block when thread pool full, //other wise there is the potential run out of memory from loading all the data before any is processed //use one less thread than processors, as we are using one for the rejectedhandler nProcessors = nProcessors - 1; BlockingQueue<Runnable> blockingQueue = new ArrayBlockingQueue<Runnable>(nProcessors); RejectedExecutionHandler rejectedExecutionHandler = new ThreadPoolExecutor.CallerRunsPolicy(); final ExecutorService pool = new ThreadPoolExecutor(nProcessors, nProcessors, 0L, TimeUnit.MILLISECONDS, blockingQueue, rejectedExecutionHandler); final SliceVisitor parallel = new SliceVisitor() { @Override public void visit(final IDataset slice) throws Exception { pool.execute(new Runnable() { @Override public void run() { try { visitor.visit(slice); } catch (Throwable ne) { ne.printStackTrace(); // TODO Fix me - should runtime exception really be thrown back to Fork/Join? //throw new RuntimeException(ne.getMessage(), ne); } } }); } @Override public boolean isCancelled() { return visitor.isCancelled(); } }; Slicer.visit(iterator, parallel); pool.shutdown(); while (!pool.awaitTermination(200, TimeUnit.MILLISECONDS)){ if (visitor.isCancelled()) break; } }
Example 13
Source File: ProduceArchiveService.java From joyqueue with Apache License 2.0 | 4 votes |
@Override protected void validate() throws Exception { super.validate(); archiveStore = archiveStore != null ? archiveStore : Plugins.ARCHIVESTORE.get(); archiveStore.setNameSpace(archiveConfig.getNamespace()); logger.info("Get archive store namespace [{}] by archive config.", archiveConfig.getNamespace()); Preconditions.checkArgument(archiveStore != null, "archive store can not be null."); Preconditions.checkArgument(archiveConfig != null, "archive config can not be null."); this.tracer = Plugins.TRACERERVICE.get(archiveConfig.getTracerType()); this.batchNum = archiveConfig.getProduceBatchNum(); this.archiveQueue = new LinkedBlockingDeque<>(archiveConfig.getLogQueueSize()); this.executorService = new ThreadPoolExecutor(archiveConfig.getWriteThreadNum(), archiveConfig.getWriteThreadNum(), 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(archiveConfig.getThreadPoolQueueSize()), new NamedThreadFactory("sendLog-archive"), new ThreadPoolExecutor.CallerRunsPolicy()); this.updateItemThread = LoopThread.builder() .sleepTime(1000 * 10, 1000 * 10) .name("UpdateArchiveItem-Thread") .onException(e -> logger.warn("Exception:", e)) .doWork(() -> { // 更新item列表 updateArchiveItem(); // 同步归档位置 syncArchivePosition(); }).build(); this.readMsgThread = LoopThread.builder() .sleepTime(0, 10) .name("ReadArchiveMsg-Thread") .onException(e -> logger.warn("Exception:", e)) .doWork(() -> { // 消费接口读取消息,放入队列 readArchiveMsg(); }).build(); this.writeMsgThread = LoopThread.builder() .sleepTime(10, 10) .name("WriteArchiveMsg-Thread") .onException(e -> logger.warn("Exception:", e)) .doWork(() -> { // 队列读取消息,放入归档存储 write2Store(); }).build(); }
Example 14
Source File: ExecutorUtils.java From streams with Apache License 2.0 | 4 votes |
public static ExecutorService newFixedThreadPoolWithQueueSize(int numThreads, int queueSize) { return new ThreadPoolExecutor(numThreads, numThreads, 5000L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(queueSize, true), new ThreadPoolExecutor.CallerRunsPolicy()); }
Example 15
Source File: StressAddMultiThreadedTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
public StressAddMultiThreadedTest() { queue = new ArrayBlockingQueue<>(THREADS); executor = new ThreadPoolExecutor(THREADS, THREADS, 100, TimeUnit.MILLISECONDS, queue, new ThreadPoolExecutor.CallerRunsPolicy()); }
Example 16
Source File: GMailProvider.java From streams with Apache License 2.0 | 4 votes |
private static ExecutorService newFixedThreadPoolWithQueueSize(int nThreads, int queueSize) { return new ThreadPoolExecutor(nThreads, nThreads, 5000L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(queueSize, true), new ThreadPoolExecutor.CallerRunsPolicy()); }
Example 17
Source File: FullTraversalConnector.java From connector-sdk with Apache License 2.0 | 4 votes |
/** * Creates all objects needed for a traversal. * * @param context the context used to get the configuration * @throws Exception if configuration parameters are invalid */ @Override public void init(IndexingConnectorContext context) throws Exception { checkState(Configuration.isInitialized(), "configuration not initialized"); indexingService = checkNotNull(context.getIndexingService()); defaultAcl = DefaultAcl.fromConfiguration(indexingService); repositoryContext = new RepositoryContext.Builder() .setEventBus(new EventBus("EventBus-" + getClass().getName())) .setDefaultAclMode(defaultAcl.getDefaultAclMode()) .build(); if (checkpointHandler == null) { checkpointHandler = LocalFileCheckpointHandler.fromConfiguration(); } useQueues = Configuration.getBoolean(TRAVERSE_USE_QUEUES, DEFAULT_USE_QUEUES).get(); QueueCheckpoint.Builder builder = new QueueCheckpoint.Builder(useQueues); if (useQueues) { String tag = Configuration.getString(TRAVERSE_QUEUE_TAG, repository.getClass().getSimpleName()).get(); builder.setCheckpointHandler(checkpointHandler) .setQueueA(QUEUE_NAME + "A: " + tag) .setQueueB(QUEUE_NAME + "B: " + tag); } queueCheckpoint = builder.build(); numThreads = Configuration.getInteger(NUM_THREADS, DEFAULT_THREAD_NUM).get(); // TODO(bmj): Fix this gross violation of encapsulation. numToAbort = Configuration .getValue(TraverseExceptionHandlerFactory.TRAVERSE_EXCEPTION_HANDLER, 0L, value -> { if (IGNORE_FAILURE.equals(value)) { return Long.MAX_VALUE; } else { try { return Long.parseLong(value); } catch (NumberFormatException e) { throw new InvalidConfigurationException( "Unrecognized value for traversal exception handler: " + value, e); } } }).get(); threadPoolExecutor = new ThreadPoolExecutor( numThreads, numThreads, 0, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(10 * numThreads), new ThreadPoolExecutor.CallerRunsPolicy()); listeningExecutorService = MoreExecutors.listeningDecorator(threadPoolExecutor); partitionSize = Configuration.getInteger(TRAVERSE_PARTITION_SIZE, DEFAULT_PARTITION_SIZE).get(); Configuration.checkConfiguration( partitionSize > 0, "Partition size can not be less than or equal to 0. Configured value %s", partitionSize); repositoryContext.getEventBus().register(this); repository.init(repositoryContext); logger.log(Level.INFO, "start full traversal connector executors"); }
Example 18
Source File: Util.java From javan-warty-pig with MIT License | 4 votes |
public CurrentThreadExecutorService() { super(0, 1, 0, TimeUnit.SECONDS, new SynchronousQueue<>(), new ThreadPoolExecutor.CallerRunsPolicy()); }
Example 19
Source File: ExecutorUtil.java From bboxdb with Apache License 2.0 | 3 votes |
/*** * Returns an executor that holds up to maxQueueSize unprocessed tasks * and processes maxThreads in parallel. When more than maxQueueSize tasks * are submitted, the task is rejected from the queue and executed in the * calling thread directly * * @param maxThreads * @param maxQueueSize * @return */ public static ThreadPoolExecutor getBoundThreadPoolExecutor(final int maxThreads, final int maxQueueSize) { // The queue holds up to maxQueueSize unexecuted tasks final BlockingQueue<Runnable> linkedBlockingDeque = new LinkedBlockingDeque<Runnable>(maxQueueSize); // The Pool executor executes up to maxThreads in parallel. If the queue is full, the caller // has to execute the task directly. return new ThreadPoolExecutor(maxThreads / 2, maxThreads, 30, TimeUnit.SECONDS, linkedBlockingDeque, new ThreadPoolExecutor.CallerRunsPolicy()); }
Example 20
Source File: CountingRejectedExecutionHandler.java From yangtools with Eclipse Public License 1.0 | 2 votes |
/** * Returns a counting handler for rejected tasks that runs the rejected task directly in the * calling thread of the execute method, unless the executor has been shut down, in which case * the task is discarded. */ public static CountingRejectedExecutionHandler newCallerRunsPolicy() { return new CountingRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); }