`
zhanyu1984
  • 浏览: 72017 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java启动多线程进行异步处理

 
阅读更多

public class InitListener implements ServletContextListener{

 private static Logger logger = Logger.getLogger(InitListener.class);
 // 资讯索引生成器
 private InfoIndexJob infoIndexJob;
 
 @Override
 public void contextDestroyed(ServletContextEvent arg0) {
  
  
 }

 @Override
 public void contextInitialized(ServletContextEvent arg0) {
  
  if (null == infoIndexJob) {
   infoIndexJob = SpringContextHolder.getBean("InfoIndexJob");
   if(infoIndexJob != null){
    Thread t = new Thread(infoIndexJob);
    t.start();
   }
   logger.info("InitListener:注入资讯索引生成器InfoIndexJob!");
  }
  
 }

}

 

 

 

/**
 * 通过 Runnable接口实现
 *
 * @author wang_fan
 *
 */
@Component("InfoIndexJob")
public class InfoIndexJob implements Runnable{

 private static Logger logger = Logger.getLogger(InfoIndexJob.class);

 @Autowired
 private PSSM9001Service pssM9001Service;

 public void run() {
  logger.info("开始重建资讯信息搜索词索引");
  try {
   int counts = pssM9001Service.createInfosIndex();
   logger.info("结束重建资讯信息搜索词索引,重建" + counts + "条搜索词");
  } catch (Exception e) {
   logger.error("重建资讯信息搜索词时发生异常", e);
  }
 }

}

 

下面通过Thread类继承实现

SubjectThread subjectThread = new SubjectThread(subjectMap,ZglsscObsConstants.OBS_SUBJECT_UPDATE_3);
    subjectThread.start();

 

class SubjectThread extends Thread{
  private Map<Object, Object> subjectMap;
  private String updateType;
  
  
  public SubjectThread(Map<Object, Object> subjectMap, String updateType) {
   this.subjectMap = subjectMap;
   this.updateType = updateType;
  }


  @Override
  public void run() {
   // TODO Auto-generated method stub
   try {
    obsM1001Service.updateSubject(subjectMap,updateType);
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  
 }

分享到:
评论

相关推荐

    Java多线程实现异步调用实例

    在Java编程中,多线程和异步调用是提高应用程序性能和响应能力的重要手段。在本实例中,我们将深入探讨如何使用Java实现多线程以实现异步调用,并理解其背后的机制。 首先,多线程允许一个程序同时执行多个任务。在...

    java多线程异步性

    Java多线程异步性是Java编程中一个关键的概念,特别是在设计高性能、高并发的应用时。多线程允许程序同时执行多个独立的任务,而异步性则是这些任务在不互相等待的情况下并行运行的能力,提高了系统的效率和响应速度...

    Android多线程及异步处理问题详细探讨

    在Android开发中,多线程和异步处理是至关重要的技术,它们主要用于改善用户体验,避免因为长时间阻塞主线程导致的界面无响应(ANR)。本文将深入探讨为什么需要多线程,如何实现多线程,以及多线程的核心机制。 1....

    java多线程,对多线程,线程池进行封装,方便使用

    线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。使用线程池可以有效地控制运行的线程数量,避免过多线程导致系统资源过度消耗,同时也能简化线程的管理和回收。Java的...

    汪文君JAVA多线程编程实战(完整不加密)

    书中详细介绍了Java多线程的核心概念,如线程的创建、启动、同步、协作以及生命周期管理。读者将学习如何通过实现Runnable接口或继承Thread类来创建线程,以及如何使用Executor框架来管理线程池。 此外,书中还深入...

    Java 模拟线程并发

    最后,Java并发库还包含了很多其他有用的工具,如Semaphore(信号量)用于控制同时访问特定资源的线程数量,CyclicBarrier(循环屏障)和CountDownLatch(计数器门锁)用于多线程间的协作,以及Lock接口及其实现如...

    java多线程设计模式详解(PDF及源码)

    重点回顾 练习问题 Introduction 2 多线程程序的评量标准 多线程程序的评量标准 安全性——不损坏对象 生存性——进行必要的处理 复用性——可再利用类 性能——能快速、大量进行处理 评量标准的总结 重点回顾 练习...

    Java 多线程 PPT

    Java多线程是Java编程中不可或缺的一部分,它允许程序同时执行多个任务,提高了程序的效率和响应速度。本文将深入探讨Java多线程的相关概念、线程类和接口的使用,以及线程的同步与互斥。 首先,我们需要理解进程与...

    Java多线程技术精讲

    总的来说,Java多线程技术包括线程的创建、管理、同步、通信以及异常处理等多个方面。深入理解和熟练掌握这些知识,对于编写高效、可靠的并发程序至关重要。在实际开发中,结合《Java多线程编程核心技术_完整版 带...

    java基础多线程练习题(1)

    在Java编程语言中,多线程是核心特性之一,它使得程序可以同时执行多个不同的任务,从而提高了系统资源的利用率和程序的响应速度。本文将深入探讨Java中的多线程概念,以及如何通过实践来提升对这一主题的理解。 ...

    java实现多线程下载

    在Java编程中,多线程下载是一种...以上就是使用Java实现多线程下载的核心知识点,包括线程基础、下载步骤、同步控制、异常处理、性能优化等方面的内容。实际应用中,还需要根据具体需求和环境进行适当的调整和扩展。

    多线程并行执行,汇总结果

    在IT行业中,多线程并行执行是一种常见的优化策略,特别是在处理大数据量或者需要高性能计算的任务时。"CountDownLatch" 和 "Thread" 是Java编程语言中实现多线程并行执行的关键工具,它们有助于提高程序的运行效率...

    android多线程的异步断点续传示例demo

    总结来说,Android中的多线程异步断点续传技术涉及了文件操作、网络请求、线程同步等多个方面,理解并掌握这些知识对于提升应用性能和用户体验至关重要。通过上述示例和解释,开发者可以更好地理解和实现这一功能。

    Java多线程技术及其在网络编程中的应用.pdf

    ### Java多线程技术及其在网络编程中的...通过对多线程的支持,Java能够轻松地处理复杂的网络通信问题,实现高效的数据传输和服务。无论是对于服务器端还是客户端的开发,理解并熟练掌握Java多线程技术都是非常必要的。

    JAVA多线程聊天工具

    在Java编程领域,多线程技术是实现高效并发处理的核心机制。"JAVA多线程聊天工具"是一个基于Java实现的简单应用,它利用了多线程的概念来创建一个实时、互动的聊天环境。在这个聊天工具中,每个用户都可以在不同的...

    详细剖析JAVA多线程案例教学

    ### JAVA多线程案例教学详析 #### 一、引言 随着计算机技术的发展,多核处理器已经成为标准配置,为了充分利用硬件资源,提高程序的执行效率,多线程编程成为了现代软件开发中不可或缺的一部分。Java作为一种广泛...

    JAVA实现多线程时钟代码程序

    本项目"JAVA实现多线程时钟代码程序"旨在帮助开发者深入理解如何在Java中实现多线程以及如何利用多线程进行图形化显示,如画钟。通过这个例子,我们可以学习到以下几个重要的知识点: 1. **线程基础**:Java中的...

    Java多线程的简单应用

    总之,Java多线程提供了一种高效处理并发任务的手段。在实际开发中,我们需要根据需求选择合适的线程创建方式,并妥善处理线程同步和通信,确保程序的稳定性和正确性。通过分析和实践提供的Applet示例,我们可以深入...

    JAVA 多线程的PPT和示例

    Java多线程是Java编程中的一个核心概念,它允许程序同时执行多个独立的任务,从而提高应用程序的效率和响应性。在Java中,多线程主要通过两种方式实现:继承Thread类和实现Runnable接口。这份"JAVA多线程的PPT和示例...

    Java多线程实现异步调用的方法

    总结来说,Java通过多线程和异步调用来提升程序的并发性能,利用 `Future` 或 `CompletableFuture` 等工具进行结果的获取和管理,结合 `ExecutorService` 管理线程,可以构建出高效、灵活的异步处理系统。...

Global site tag (gtag.js) - Google Analytics