hybris 异步另起线程

 1
 2
 3 import de.hybris.platform.core.Registry;
 4 import de.hybris.platform.core.TenantAwareThreadFactory;
 5
 6 private static final ExecutorService EXECUTEOR = java.util.concurrent.Executors.newFixedThreadPool(10);
 7
 8 if(Boolean.TRUE.toString().equalsIgnoreCase(isMultiApproved) && CollectionUtils.isNotEmpty(orderEntries)){
 9             LOG.info("autoCommitApprove size "+orderEntries.size());
10             final TenantAwareThreadFactory factory = new TenantAwareThreadFactory(Registry.activateMasterTenant(),
11                     JaloSession.getCurrentSession());
12             final Thread sendThread = factory.newThread(new Runnable()
13             {
14                 @Override
15                 public void run()
16                 {
17
18                     autoMultiCommitApproved(orderEntries);
19                 }
20             });
21             EXECUTEOR.submit(sendThread);
22
23             return;
24         }
时间: 2024-10-14 22:43:09

hybris 异步另起线程的相关文章

可重入,异步信息安全,线程安全

这三个概念一直纠缠着我,我也时不时的会拿出来辨析下,直到昨天才发现自己可以把它们理顺了.所以学习就是这样一个反复的过程,最终达到顿悟的效果.本文主要参考APUE第三版英文版第10.6和12.5节,以及WIKI百科,还有CSDN和stackoverflow中对这些概念的讨论,然后给出一份自己认为比较合理的理解. ? I. 中断,信号,线程切换 这三个概念都牵涉到异步通信,即运行中的代码不可预测什么时候会发生中断,什么时候会收到信号,什么时候会发生线程切换: 中断,一般指的硬件中断,是硬件对cpu的

异步编程和线程的使用(.NET 4.5 )

C#:异步编程和线程的使用(.NET 4.5 ) 异步编程和线程处理是并发或并行编程非常重要的功能特征.为了实现异步编程,可使用线程也可以不用.将异步与线程同时讲,将有助于我们更好的理解它们的特征. 本文中涉及关键知识点 1. 异步编程 2. 线程的使用 3. 基于任务的异步模式 4. 并行编程 5. 总结 异步编程 什么是异步操作?异步操作是指某些操作能够独立运行,不依赖主流程或主其他处理流程.通常情况下,C#程序从Main方法开始,当Main方法返回时结束.所有的操作都是按顺序执行的.执行操

C#:异步编程和线程的使用(.NET 4.5 )

C#:异步编程和线程的使用(.NET 4.5 ) 异步编程和线程处理是并发或并行编程非常重要的功能特征.为了实现异步编程,可使用线程也可以不用.将异步与线程同时讲,将有助于我们更好的理解它们的特征. 本文中涉及关键知识点 1. 异步编程 2. 线程的使用 3. 基于任务的异步模式 4. 并行编程 5. 总结 异步编程 什么是异步操作?异步操作是指某些操作能够独立运行,不依赖主流程或主其他处理流程.通常情况下,C#程序从Main方法开始,当Main方法返回时结束.所有的操作都是按顺序执行的.执行操

使用 Task 替换 ThreadPool ,异步监测所有线程(任务)是否全部执行完毕

using Microsoft.VisualStudio.TestTools.UnitTesting; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace Ex.RulesTester.Threads { /// <summary> /// 异步等待所有线程结束通知测试 /// </summary> [TestClass] public c

线程池 异步I/O线程 &lt;第三篇&gt;

在学习异步之前先来说说异步的好处,例如对于不需要CPU参数的输入输出操作,可以将实际的处理步骤分为以下三步: 启动处理: 实际的处理,此时不需要CPU参数: 任务完成后的处理: 以上步骤如果仅仅使用一个线程,当线程正在处理UI操作时就会出现“卡”的现象. 如果使用异步的处理方式,则这三步处理过程涉及到两个线程,主线程中启动第一步:第一步启动后,主线程结束(如果不结束,只会让该线程处于无作为的等待状态):第二步不需要CPU参与:第二步完成之后,在第二个线程上启动第三步:完成之后第二个线程结束.这样

day 32异步+回调、线程queue、线程Event、协程、单线程下实现遇到IO切换

一.异步+回调:线程是谁空谁调,进程是主进程调用 from concurrent.futures import ProcessPoolExcutor,ThreadPoolExecutor from threading import current_thread import requests,os,time,random def get(url): print('%s GET %s'%(current_thread().name,url)) response=requests.get(url)

使用异步委托执行线程(delegate)

由于异步委托产生的线程与应用程序主线程是分开执行的,若主线程要获取异步委托线程的结果,则主线程需要等待异步委托的执行结果. BeginInvoke是Delegate类型的一个方法,它的返回类型为IAsyncResult,通过该接口,可以获得异步委托的执行信息. 1.投票技术:等待异步委托结果的一种方法是投票技术,该技术的实现原理是通过IAsyncResult接口的IsComplete属性来检查委托是否完成了任务.EndInvote方法获取执行结果.举个例子,如下: 执行后的效果: 2.访问等待句

异步编程、线程和任务

用鼠标操作,我们习惯了延迟,过去几十年都是这样.有了触摸UI,应用程序要求立刻响应用户的请求. C#5.0提供了更强大的异步编程,仅添加了两个新的关键字:async和await. 使用异步编程,方法调用是在后头运行(通常在线程和任务的帮助下),并且不会阻塞调用线程. => 所以 异步编程应该就是使用线程和任务进行编程. 另外,异步委托也是在线程和任务的帮助下完成的,它是基于事件的异步模式. 1.首先先了解一个概念:(WPF的,应该和WindowsForm差不多) 在WindowsForm和WPF

异步调用与线程(总结篇)

委托调用.子线程程调用.与线程池调用1,委托调用(1),同步委托:委托的Invoke方法用来进行同步调用.同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行. 从下面的例子中可以看到,同步委托的执行是在主线程main中执行的,所以当执行委托时,当前工作会处于等待状态,开始执行委托,当委托执行完后在继续执行“当前工作” public delegate int AddHandler(int i,int y);        private void button1_C