java中等待几秒无返回结束

java中等待几秒无返回结束,第1张

java中等待几秒无返回结束

Java 调用一个三方申请接口需要等一段时间,时间不确定再调用申请结果查询接口,如果sleep几秒调用一次有返回结果就返回这样影响性能,有什么比较好的方法?kakai 如果是java服务调用这个接口服务,那么那个接口服务设计上就存在问题。这种接口服务

Java调用一个三方应用程序接口需要等待一段时间,时间不确定,然后调用应用程序结果查询接口,如果sleep被几次调用 秒,然后返回结果,它将影响性能。 更好的方法?

首先,你调用System.in.read()时,这个线程会被阻塞掉,也就是说如果用户一直不输入,你的线程一直完不了。

所以不能在main线程中调用System.in.read(),而要新开一个线程,在其中使用read()(你可以在新开的线程中直接处理用户输出,或者使用线程通讯和周步的方法将数据发送给另一工作者线程来处理。)

新开的线程和main线程共享一个变量,就是用户空闲时间,main线程循环sleep一段时间,醒过来就把用户空闲时间加上时间间隔,判断空闲时间是否超时,如果超时就强制关闭响应用户输入的那个线程,否则接着睡。

响应用户输入的线程每次得到输入后,都将用户空闲时间变量(就是和main线程共享的那个变量)清零。

你要理解,对于applet的每个输入空间都是跑在自己的线程上的,applet实际上已经封装了将响应用户输入作为单独线程跑的逻辑。

楼主问到了这个逻辑的根本,要自己实现,所以applet的那些代码没有参考价值。

要点就是,新开线程等待用户输入,另开线程记时,记时线程有权强制关闭响应用户输入的线程。

1、所谓“暂停”,就是程序暂等待。

2、在java中暂停,有几种方法,如线程wait或是sleep或是yield等,自己百度查一下这些方法的用法,就可以解决你的问题了~

试试吧


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7945265.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存