社区
Java EE
帖子详情
JSP使用多线程
noobfresher
2018-04-28 08:59:28
想要开多个线程去访问远程的数据接口(因为需要模拟登陆所以返回较慢,一般需要1-5s),同时在页面上实时显示接口返回数据,想问一下这种怎么做才好?(接口返回数据耗时基本是随机的,所以用callable的话需要等那个较慢的;而用runnable的话怎么在run函数中调用jsp的out或response又是个问题)
刚接触jsp还请各位说得详细点,谢谢~
...全文
879
1
打赏
收藏
JSP使用多线程
想要开多个线程去访问远程的数据接口(因为需要模拟登陆所以返回较慢,一般需要1-5s),同时在页面上实时显示接口返回数据,想问一下这种怎么做才好?(接口返回数据耗时基本是随机的,所以用callable的话需要等那个较慢的;而用runnable的话怎么在run函数中调用jsp的out或response又是个问题) 刚接触jsp还请各位说得详细点,谢谢~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
noobfresher
2018-04-28
打赏
举报
回复
贴一下两种方式的实验代码,Runnable的会报IOException Callable: <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="java.util.concurrent.*" %> <html> <head> <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"> <title>Title</title> </head> <%! public class MyCallable implements Callable{ private String url; private String param; public MyCallable(String url, String param){ this.url=url; this.param=param; } public String call() throws Exception{ int ran=(int)(Math.random()*5000); Thread.sleep(ran); return Thread.currentThread().getName()+", "+this.url+", "+this.param+" sleeped "+ran+" milliseconds!"; } } %> <% out.println(String.format("%256s","")); ExecutorService pool = Executors.newFixedThreadPool(5); Callable[] c=new Callable[5]; Future[] f=new Future[5]; for(int i=0;i<5;i++) c[i]=new MyCallable("A"+i,"B"+i); for(int i=0;i<5;i++) f[i]=pool.submit(c[i]); for(int i=0;i<5;i++){ out.println(f[i].get().toString()+"</br>"); out.flush(); } pool.shutdown(); %> Runnable: <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8"> <title>Title</title> </head> <%! public static void myFunc(String Bits, javax.servlet.jsp.JspWriter myOut){ try{ myOut.println("<div>"+Bits+"</div>"); } catch(Exception eek) { } } public class MyRunnable implements Runnable{ private String url; private String param; private javax.servlet.jsp.JspWriter myOut; public MyRunnable(String url, String param, javax.servlet.jsp.JspWriter myOut){ this.url=url; this.param=param; this.myOut=myOut; } public void run(){ myFunc(Thread.currentThread().getName()+", "+this.url+", "+this.param, this.myOut); } } %> <% for(int i=0;i<5;i++) new Thread(new MyRunnable("A"+i, "B"+i, out)).start(); %>
servlet-api-2.5.jar和
jsp
-api-2.1.jar
Servlet API 2.5与
JSP
API ...需要注意的是,尽管Servlet 2.5和
JSP
2.1在许多现代项目中仍然适用,但随着技术的发展,更高版本的Servlet(如Servlet 4.0)和
JSP
(如
JSP
2.3)已经发布,带来了更多的新功能和性能优化。
JAVA学习教程
第7章讲解了Java的
多线程
特性,这是Java的一个强大功能。
多线程
允许程序同时执行多个任务,提高应用程序的效率。Java提供了Thread类和Runnable接口来创建和管理线程。 6. **输入输出流与文件操作**: Java的I/O流...
100家大公司java笔试题汇总
以下是Java笔试题汇总,涵盖了Java的多个方面,包括Java基础、Java面向对象编程、Java
多线程
、Java网络编程、Java数据库编程等。 Java基础 1. Java的基本数据类型有哪些? 答:byte、short、int、long、float、...
java 教程与实例
7. **
多线程
**:Java内置对
多线程
的支持,允许程序同时执行多个任务。Thread类和Runnable接口是实现
多线程
的核心,而synchronized关键字和wait()、notify()方法用于控制线程间的同步和通信。 8. **网络编程**:Java...
Java经典项目集锦
5. **
多线程
编程**:Java提供了丰富的
多线程
支持,经典项目会涵盖线程同步、线程池、守护线程等概念。比如,实现一个下载器,需要用到
多线程
并发下载,这就涉及到线程间的协作和控制。 6. **异常处理**:在实际项目...
Java EE
67,538
社区成员
225,852
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章