异步

实现Spring中的任务调度及异步执行

不想你离开。 提交于 2019-11-29 23:35:41
首先要端正一下本人的态度,开发了很长时间的Java Web项目,寄托于Spring MVC的架构,多数时间都是在处理业务逻辑问题,所以我个人单纯地认为Web开发,多线程的应用场景应该不多,能不用尽量不用(当然,有这样的想法,那也是我个人多线程运用不多,理解不是很深刻,而且多线程并发操作需要面对和处理的问题很多,像共享资源上锁等)。但现在需要用到了,才明白多线程的应用场景是多么的重要。所以这几天开始在多线程方面进行了研究,下面总结我这几天的理解和认知。 先阐述下,我在Web项目开发中为什么会用到多线程?项目背景是这样的:门户网站中添加了页面静态化的功能,那对于静态页面内容的更新,采用什么更新策略呢?我用的是最简单的方法,启用定时任务,每隔一段指定的时间清空静态页面文件所在的目录(关于这点,如果有更好做法或建议的,请指点一哈),在项目开始运行时,就启用定时任务开始工作。显然,启用定时任务,可以简化认为开始一个新的线程,来专门执行删除静态页面文件的操作。 为了实现上述的功能,不需要我们从最原始的多线程编程方式入手,通过网上的搜索,大致有三种解决方案。如下: 使用Quartz开源任务调度框架。 使用JDK Timer类。 使用Spring“原生态”的Spring Task。 针对前两种方法,Spring都给予了完美的封装和整合。那么关于Quartz和JDK Timer是什么,做什么,怎么用

七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL

二次信任 提交于 2019-11-28 22:44:38
本节又带了一些常用的,却很难理解的问题,本节从文件上传功能的实现引出了线程使用,介绍了线程饥饿的解决方法,异常处理方法,了解RouteTable自定义路径 。 系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授权认证问题 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理 七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL 目录 实验27——添加批量上传选项 关于实验27 实验27存在的问题 解决方法 实验28——解决线程饥饿问题 实验29——异常处理—显示自定义错误页面 关于实验29 理解实验29中的限制 实验30—异常处理—日志异常 关于实验30 理解RouteTable 理解Asp.net MVC 请求周期 实验31—实现用户友好URLs 关于实验31 总结 实验27——添加批量上传选项 在实验27中,我们将提供一个选项,供用户选择上传Employee记录文件(CSV格式)。 我们会学习以下知识: 1. 如何使用文件上传控件 2. 异步控制器 1. 创建 FileUploadViewModel

Jsp页面中的异步与同步

让人想犯罪 __ 提交于 2019-11-27 18:48:02
"异步"请求是相对于"同步"请求而言的,很多操作都存在"异步"和"同步"一说, "同步" 的意思是说,你发起一个操作,程序需要一直等待,直到操作完成,程序才能继续执行进行下一步。 异步就是 你开始一个操作,程序在操作完成之前可以继续后续的工作,当操作完成后,触发事件或者使用回调来处理操作完成的手续。 一般来说异步操作都是启动一个新的线程去处理你的请求,完成之后调用你指定的 回调函数 来完成整个异步操作。 1 <a href="" onclick="number_jian(${b.id})" id="decrement">-</a> 2 <input type="text" class="kongge" onfocus=this.blur() value="${b.num}"> 1 function number_add(id){ 2 var num = 1; 3 var id=id; 4 window.location.href="/happy-farm/cart/findLandCartList3?landID="+id+'&number='+num; 5 //$(".kongge").click(); 6 //添加事件执行浏览器默认操作,也就是必须执行下面的事件之后,页面才会刷新 7 $(".kongge").trigger("click").focus(); 8 /

servlet3异步原理与实践

心已入冬 提交于 2019-11-27 18:07:50
一、什么是Servlet servlet 是基于 Java 的 Web 组件,由容器进行管理,来生成动态内容。像其他基于 Java 的组件技术一样,servlet 也是基于平台无关的 Java 类格式,被编译为平台无关的字节码,可以被基于 Java 技术的 Web 服务器动态加载并运行。容器(Container),有时候也叫做 servlet 引擎,是 Web 服务器为支持 servlet 功能扩展的部分。客户端通过 servlet 容器实现的 request/response paradigm(请求/应答模式) 与 Servlet 进行交互。 二、什么是Servlet规范 每当一个Servlet版本发布都会对应一个Servlet版本的规范,比如Servlet2.5、Servlet3.0、Servlet3.1. 规范中描述了Java Servlet API 的标准,定义了 Java Servlet API 中类、接口、方法签名的完整规范且附带的Javadoc 文档供开发人员查阅,目的主要是为Java Servlet 给出一个完整和清晰的解释。从下图可以看出Servlet规范版本和tomcat支持的版本的对应关系。比如Servlet3是从tomcat7以后开始支持的。 Servlet和tomcat版本.png 三、同步,异步,阻塞,非阻塞 同步异步是数据通信的方式

Java NIO ByteBuffer学习

╄→尐↘猪︶ㄣ 提交于 2019-11-27 03:32:21
深入理解Apache Mina (6)---- Java Nio ByteBuffer与Mina ByteBuffer的区别 http://chinaestone.iteye.com/blog/468138 DirectBuffer及内存泄漏 http://blog.csdn.net/zhouhl_cn/article/details/6573213 JAVA NIO之Direct Buffer 与 Heap Buffer的区别? http://eyesmore.iteye.com/blog/1133335 java.nio.Buffer缓冲区基础[转] http://zcdxzsz.iteye.com/blog/310917 NIO与传统IO的区别: http://blog.csdn.net/zhouhl_cn/article/details/6568119 Java NIO 学习笔记 - ByteBuffer http://my.oschina.net/u/185041/blog/54750 NIO-FileChannel http://zachary-guo.iteye.com/blog/1465475 NIO操作类型与就绪条件 http://blog.csdn.net/zhouhl_cn/article/details/6567877 来源: oschina 链接: