`
iorit2003
  • 浏览: 141835 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

线程超时

阅读更多
  1. //    SearchThread.java  
  2. class SearchThread extends Thread {  
  3.        private List result = new ArrayList();  
  4.        private boolean success_flag = false;  
  5.        ...........  
  6.   
  7.        public SearchThread(xxxx,xxxxx) {  
  8.             .......  
  9.        }  
  10.   
  11.        public void run() {  
  12.              this.result = API.getSearchResult(xxxx,xxxx,xxxx);  
  13.              this.success_flag = true;  
  14.        }  
  15.  
  16.        public List getResults() {  
  17.              return this.result;  
  18.        }  
  19.   
  20.        public boolean isSuccess() {  
  21.              return this.success_flag;  
  22.        }  
  23. }  
  1. //  XXXAction.java  
  2. ...........  
  3. SearchThread thread = new SearchThread(xxxxxx,  xxxxxxx);  
  4. thread.start();  
  5. try {  
  6.      thread.join(MAX_WAIT_TIME);  
  7.      if (thread.isSuccess()) {  
  8.           result_lst = thread.getResults();  
  9.      } else {  
  10.           throw new DataBaseTimeoutException();  
  11.      }  
  12. catch (Exception e) {  
  13.      thread.interrupt();  
  14.      ........  
  15. }  
  16. MAX_WAIT_TIME就是最大等待时间20秒,如果join()到达最长等待时间,但 是SearchThread里面的success_flag还没有被设置成true的时候,就是说明已经超时,检索没有完成,这个时候会抛出自定义的 DataBaseTimeoutException,中断线程。
分享到:
评论

相关推荐

    .net c#线程超时解决方案

    .net C#线程超时的解决方案,使用的时候在被调线程入口调用一下这个方法就可以。更多详细代码见附件 Report.RegisterThread(Report.GetCurrentWin32ThreadID(),Thread.CurrentThread); #region 获取当取线程的...

    Java线程超时监控

    首先,我们可以使用`java.util.concurrent`包中的`Future`和`ExecutorService`来实现线程超时。`ExecutorService`是一个接口,它提供了管理和控制线程池的能力,而`Future`则表示异步计算的结果。当我们提交一个任务...

    .net C#线程超时

    .net C#线程超时的解决方案,使用的时候在被调线程入口调用一下这个方法就可以。更多详细代码见附件 Report.RegisterThread(Report.GetCurrentWin32ThreadID(),Thread.CurrentThread); #region 获取当取线程的...

    Java线程超时控制的实现.docx

    ### Java线程超时控制实现详解 #### 一、引言 在开发过程中,经常会遇到需要对线程执行时间进行限制的情况,例如与远程数据库的交互或网络数据的下载等耗时操作。为了提高程序的健壮性和用户体验,合理地控制这些...

    线程超时死掉

    解决线程的死掉问题和超时问题特别好使,在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现。 Future接口是Java标准API的一部分,在java.util.concurrent...

    java通过线程控制程序执行超时(新)

    在Java编程中,控制程序执行超时是一项重要的任务,特别是在多线程环境下,我们可能需要确保某个任务不会无限制地运行下去,导致资源耗尽。本文将深入探讨如何使用Java的线程机制来实现程序执行的超时控制,同时也会...

    vb.net C#线程锁超时控制代码

    控制线程超时方法 1.[主线程]:请求方发送请求,立即创建超时等待线程锁 2.[异步线程]:接收数据,数据包合并,数据包合并完成后向解锁主线程 3,[主线程]:超时则进入超时异常,接到异步线程的通知则进入后续业务 ...

    线程池和超时线程的实现(附源码)

    在什么情况下使用线程池?...减少在创建和销毁线程上所花的时间以及系统资源的开销 2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及”过度切换”。 下面是一个线程池例子,经测试绝对可行:

    浅谈java中异步多线程超时导致的服务异常

    当一个线程超时,即在设定的时间内没有完成其工作,它会抛出`TimeoutException`。理论上,一个线程的超时不应该影响其他线程的执行,但实际情况可能并非如此。例如,在上述代码中,由于线程池大小固定(`...

    多线程管理框架支持超时退出任务回调处理

    一直用线程池,但有些时候发现线程池无法控制结束某个超时等待的线程任务,所以就勉为其难的自己写了个线程管理~。作用:模仿线程池操作,管理多线程任务,超时,以及完成任务的回调。如果有bug自行处理,服务器挂机...

    Java中实现线程的超时中断方法实例

    Java中实现线程的超时中断方法实例 概述:在 Java 中实现线程的超时中断是非常重要的,特别是在熔断降级组件中。熔断降级组件需要在指定的超时时间内中断请求线程,以避免请求长时间阻塞系统资源。在这篇文章中,...

    WinForm C#多线程等待窗体

    在C#编程中,Windows Forms(WinForm)应用程序经常需要处理多线程操作,以便实现非阻塞用户界面。在标题“WinForm C#多线程等待窗体”中,我们探讨的关键点是如何在进行耗时操作时创建一个等待窗体,让用户知道程序...

    C# 获取js执行之后的网页源代码(使用线程并设置超时功能)_20200712_140337.rar

    4. **线程超时**:为了防止网页加载时间过长导致程序无响应,我们需要设置一个超时机制。这里可以通过`CancellationToken`来实现。 ```csharp private async Task<string> GetHtmlSourceAsync(string url, int ...

    多线程控制,线程池模式,HTTP线程

    线程池的大小可以根据系统资源和任务特性来调整,通常包括核心线程数、最大线程数、线程超时策略等参数。Java中的ExecutorService接口和ThreadPoolExecutor类是实现线程池的经典工具。 HTTP线程则是在网络编程中,...

    C#多线程等待窗体

    在C#编程中,多线程技术是一种常用的方法,它能让我们在单个应用程序中同时执行多个任务,提高程序的效率和响应性。"等待窗体"是多线程应用中一个重要的概念,通常用于在后台任务执行时提供用户友好的界面反馈。本...

    多线程写法(精易模块线程池和鱼刺模块线程池)

    鱼刺模块线程池可能提供了更高级的特性,例如线程优先级、任务队列的管理策略、线程超时控制等,以适应不同场景的需求。 对比精易模块线程池和鱼刺模块线程池,我们可以关注以下几个方面: 1. 性能:比较两者在线程...

    java通过线程控制程序执行超时

    在Java编程中,控制程序执行超时是一项关键任务,特别是在多线程环境下,我们需要确保某个任务不会无限期地运行,导致资源浪费或者阻塞其他重要任务。本篇将深入探讨如何利用Java的线程和定时器(Timer)来实现这个...

    java超时控制

    4. **多线程超时** 在多线程环境下,可以使用`Thread.join(long timeout)`方法,让当前线程等待指定时间,如果目标线程还未结束,就返回,避免死锁。 5. **数据库连接超时** 数据库连接池如C3P0或HikariCP允许...

    C#多线程实例

    在多线程环境中,我们可能会在这里配置线程池大小或者线程超时等参数,以优化线程使用。 `MutilThreadDemo.csproj.user`和`MutilThreadDemo.suo`是Visual Studio的用户特定配置文件,它们包含了开发者个人的IDE设置...

Global site tag (gtag.js) - Google Analytics