一、线程的基本应用(thread.join())
/** * 保存等级保护定级备案申请信息 */ public void saveBash() throws Exception { String success = ""; //得到前台传入的验证码 String code = this.getRequest().getParameter("code"); //得到session存入的验证码 String yanZhenMa = this.getRequest().getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY).toString(); if(!code.equalsIgnoreCase(yanZhenMa)){ renderText("输入的验证码有误"); }else{ //得到请求唯一编号 onlyCode = DummyServer.createOnlyCode("BJBH"); //用于生成业务流水号的xml文件 String xmlFile = DummyServer.createSblshReqXml(onlyCode,"30000031900754268913440300"); //向uplond目录写文件 DummyServer.createReqXmlFile(onlyCode,xmlFile); //线程 Thread thread = new Thread(){ public void run(){ try{ String path = (new ReadXml().getClass().getResource("/").toString()+"data_download/").replace("file:/", "").replace("%20", " "); String fileName = onlyCode+".xml"; File file = new File(path+fileName); if(file.exists()){ //取申办流水号 sblsh = Base.readXml(file); file.delete(); return; } Thread.sleep(200); run(); }catch(Exception e){ e.printStackTrace(); } } }; //开启线程 thread.start(); //线程执行完成后(即file.exists()为ture时,链接下面的代码) thread.join(); //添加受理编号 entity.setSlbh(sblsh); //统一平台列名、列值集合集合 Map<String,String> map = fhMap(entity); //受理状态对象 WjBajv wjBajv = new WjBajv(); wjBajv.setSlbh(sblsh); //保存等级保护定级备案申请信息、向统一平台插入数据 success = manager.saveWjBash(entity,map,wjBajv); if(("1".equals(success))){ renderText("备案成功,受理编号为:"+sblsh); }else{ renderText("服务器出现异常,请重新备案!"); } } }
相关推荐
- 线程是操作系统分配CPU时间的基本单位,一个进程可以包含一个或多个线程。 - Java中通过`java.lang.Thread`类或者实现`Runnable`接口来创建线程。 - 主线程:每个Java应用程序都有一个主线程,它是程序的入口点...
在本文中,我们将深入探讨线程的基本应用以及如何在程序中调用和控制线程。 1. **线程的基本概念**: - 进程:操作系统资源分配的基本单位,每个进程都有独立的内存空间。 - 线程:执行单元,是进程内的执行路径...
线程作为操作系统中的基本执行单元,是程序执行的最小单位,它比进程更轻量级,允许程序在同一时间执行多个不同的任务。本文将深入探讨操作系统原理中的线程概念及其应用。 线程的概念: 线程是进程中的一个执行...
线程是操作系统分配CPU时间的基本单位,一个进程可以包含多个线程。在单核CPU中,多线程通过时间片轮转实现并发,而在多核CPU中,不同线程可以真正地并行执行。多线程编程可以提高程序的响应速度和系统资源的利用率...
### 在C#中编写多线程应用程序 #### 引言 多线程是现代软件开发中的一个重要概念,尤其是在像C#这样的高级编程语言中。它允许程序同时执行多个任务,从而提高了应用程序的性能和响应性。本文将详细介绍如何在C#中...
本文将详细解析标题和描述中的核心知识点,包括SOCKET和多线程的基本原理,以及它们在实际应用中的具体实施策略。 ### SOCKET技术概览 SOCKET技术,即套接字技术,是网络编程中不可或缺的一部分,它为不同平台上的...
在Java编程语言中,线程是程序执行的基本单元,它允许程序同时执行多个任务。Java中的线程模型是建立在操作系统级别的线程之上的,因此,通过Java的线程机制,开发者可以充分利用多核处理器的资源,提高程序的并发性...
通过本次多线程应用程序设计实验,不仅掌握了多线程编程的基本技能,还学会了如何使用pthread库函数进行线程管理。更重要的是,在实验过程中培养了解决实际问题的能力,这对于今后的学习和工作都是非常宝贵的财富。
首先,我们要理解线程的基本概念。线程是程序执行的最小单元,每个线程都有自己的程序计数器、虚拟机栈、本地方法栈,而它们共享堆内存和静态存储区。Java中的Thread类提供了创建和管理线程的方法。 1. 继承Thread...
总之,理解和掌握线程的基本知识对于开发多线程应用至关重要。正确使用线程可以提高程序的并发性和效率,但同时也需要处理好线程同步、资源管理和通信等问题,以确保程序的稳定性和正确性。在MFC框架中,利用...
### 多线程应用程序设计知识点解析 #### 一、多线程程序设计基本原理 多线程编程是一种软件技术,允许在单个程序中并行执行多个任务或操作,从而提高程序的性能和响应能力。在多核处理器普及的今天,多线程编程...
本资源包含六个C#.NET多线程实例,涵盖了多线程的基本使用以及高级特性,如线程互斥,确保了线程安全和数据一致性。 1. **多线程基础**: - **创建线程**:在C#中,可以使用`Thread`类创建新线程。通过构造函数...
首先,我们要理解多线程的基本概念。多线程意味着在一个进程中可以有多个执行线程,它们共享同一内存空间,包括代码段、数据段。每个线程拥有独立的程序计数器、寄存器和堆栈,这使得它们可以并行执行不同的任务。...
"嵌入式Linux应用程序开发第9章多线程编程" 本章主要讲解了 Linux 中的多线程编程,包括 Linux 线程的基本概念、创建及使用、属性设置、同步与互斥问题的处理等内容。通过学习本章,读者将掌握 Linux 中线程的基本...
在IT领域,多线程数据库应用程序编程是一项关键的技术,尤其在使用Delphi这种高效、强大的RAD(快速应用开发)工具时。Delphi以其高效的VCL框架和原生的编译器支持,使得开发者能够轻松地构建多线程的数据库应用,...
1. **多线程基本使用**: 多线程的基本使用通常涉及到创建和启动线程。在C#中,可以使用`System.Threading.Thread`类来创建新线程。通过实例化`Thread`对象并传递一个委托(如`ThreadStart`或`...
首先,理解多线程的基本概念是至关重要的。在单线程系统中,任务按顺序执行,而多线程则允许多个任务同时进行,提高了系统资源的利用率。在Windows操作系统中,系统内核提供了一个多线程环境,开发者可以创建和管理...
线程是操作系统分配CPU时间的基本单位,每个线程都有自己的程序计数器、栈、局部变量等,但共享同一块内存空间,包括全局变量和静态变量。线程间的通信比进程间通信更为高效,因为它们共享相同的地址空间。 在C语言...