Java 调用一个三方申请接口需要等一段时间,时间不确定再调用申请结果查询接口,如果sleep几秒调用一次有返回结果就返回这样影响性能,有什么比较好的方法?kakai 如果是java服务调用这个接口服务,那么那个接口服务郑肆袜设计上就存在问题。这种接口服务
Java调用一个三方应雹丛用程序接口需要等待一段时间,时间不确定,然后调用应用程序结果查询接口,如果sleep被几次调用 秒,然后返回结果,它将影响性能。 更好的方法?
java中使用用线程控制Task任务,启动下亏让面的线程就可以掘空笑了,new Thread(new Task()).start() public classTask implements Runnable {//新建一个任务
private TextArea textArea
public Task(TextArea textArea){
this.textArea = textArea
}
public void run() {
while (true) {
this.textArea.setText("判含这里设置: 输出的一段文字")
try {
Thread.sleep(500) // 这里设置:隔多长时间
} catch (Exception e) {
e.printStackTrace()
}
}
}
}
首先,你调用System.in.read()时,这个线程会被阻塞掉,也就是说如果用户一直不输入,你的线程一直完不了。所以不能在main线程中调用System.in.read(),而要新开一个线程,在其中使用read()(你可以在新开的线程中直接处理用户输出,或者使用线程通讯和周步的方法将数据发送给另一工作者线程来处理。)
新开的线程和main线程共享一个变量,就是用户空闲时间,main线程循环sleep一段时间,醒过来就把用户空闲时间加上时间间隔,判断空闲时间是否超时,如果超时就强制关闭响应用户输入的那个线程,否则接着睡。
响应用户输入的线程每次得到肢岁侍输入后,都将用户空闲时间变量(就是和main线程共享的那个变量)清零。
你要理解,对于applet的每个输入空间都是跑在自己的线程上的,applet实际上已经封装了将响应用户输入作为单独线程跑的逻辑。
楼主问到了这个逻辑的根本,历吵要自己实现,所以applet的那些代码没有参考价值。
要点就是雀改,新开线程等待用户输入,另开线程记时,记时线程有权强制关闭响应用户输入的线程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)