社区
Java EE
帖子详情
JSP使用多线程
noobfresher
2018-04-28 08:59:28
想要开多个线程去访问远程的数据接口(因为需要模拟登陆所以返回较慢,一般需要1-5s),同时在页面上实时显示接口返回数据,想问一下这种怎么做才好?(接口返回数据耗时基本是随机的,所以用callable的话需要等那个较慢的;而用runnable的话怎么在run函数中调用jsp的out或response又是个问题)
刚接触jsp还请各位说得详细点,谢谢~
...全文
847
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(); %>
JSP
极简实操入门
JSP
入门知识,极简实操。内容包括:
JSP
概述-脚本程序
JSP
概述-中文编码
JSP
概述-
JSP
声明
JSP
概述-
JSP
表达式
JSP
概述-
JSP
注释异常处理-1异常处理-2异常处理-3
JSP
概述-判断语句(If…else块)
JSP
概述-判断语句(switch…case块)
JSP
概述-循环语句(for循环-1)
JSP
概述-循环语句(for循环-2)
JSP
概述-循环语句(While循环)
jsp
中include标签举例一
jsp
中include标签举例二
jsp
中param属性传值-1
jsp
中param属性传值-2
jsp
中useBean-1
jsp
中useBean-2
jsp
中useBean-3
jsp
中的内置对象之一out
jsp
中的内置对象之二page
jsp
中的内置对象之三response
jsp
的内置对象之四request对象-1
jsp
的内置对象之四request对象-2
JSP
的
多线程
问题详解
JSP
默认是以
多线程
方式执行的,这是
JSP
与ASP,PHP,PERL等脚本语言不一样的地方,也是它的优势之一,但如果不注意
多线程
中的同步问题,会使所写的
JSP
程序有难以发现的错误。下面以一个例子说明
JSP
中的
多线程
问题及...
JSP
—— Servlet 单实例
多线程
模式
...由于Servlet/
JSP
默认是以
多线程
模式执行的,所以,在编写代码时需要非常细致地考虑
多线程
的安全性问题。
JSP
的中存在的
多线程
问题: 当客户端第一次请求某一个
JSP
文件时,服务端把该JS
为什么
使用
多线程
,
多线程
如何提高效率
一、 从
多线程
提高程序执行效率的角度,讨论如何提高效率以及为什么
使用
多线程
1.1 在多核处理系统上,将要执行的任务分割成多个可并行执行线程,就可以提高执行速率 1.2 单处理器上
多线程
只能并发执行而不是并行...
Java EE
67,513
社区成员
225,879
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章