知识大全 Java中限时线程回调方式的实现

Posted 时间

篇首语:炒沙作縻终不饱,缕冰文章费工巧。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java中限时线程回调方式的实现相关的知识,希望对你有一定的参考价值。

Java中限时线程回调方式的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  线程回调方式我们已经在 使用回调和线程处理一个耗时响应过程 文中进行了讲述 但是有些情况下用户希望在指定时间内返回一个结果 免得无休止的等待下去 这时我们需要使用 限时线程回调方式 它在原有线程回调的基础上加上了一个Timer以计算消耗的时间 如果时间期限到了任务还没有执行完的话即中断线程 示例代码如下

  

  package sitinspring; import java awt event ActionEvent; import java awt event ActionListener; import javax swing Timer; /** *//** * 定时回调线程类 * * @author sitinspring() * * @date */ public class TimedCallBackThread implements Runnable // 一秒的毫秒数常量 private final static int ONE_SECOND = ; // 限制时间 以秒为单位 private final int waitTime; // 已经流逝的时间 private int passedTime; private Timer timer; private Thread thread; private MvcTcModel model; private MvcTcView view; public TimedCallBackThread(MvcTcModel model MvcTcView view int waitTime) this model = model; this view = view; this waitTime = waitTime; this passedTime = ; // 创建并启动定时器 timer = new Timer(ONE_SECOND new ActionListener() public void actionPerformed(ActionEvent evt) timeListener(); ); timer start(); // 创建并启动线程来完成任务 thread = new Thread(this); thread start(); private void timeListener() passedTime++; // 动态显示状态 int modSeed = passedTime % ; if (modSeed == ) view getLabel () setText( 响应中 ); else if (modSeed == ) view getLabel () setText( 响应中 ); else if (modSeed == ) view getLabel () setText( 响应中 ); // 如果流逝时间大于规定时间则中断线程 if (passedTime > waitTime) passedTime = waitTime; thread interrupt(); public void run() while (passedTime < waitTime) try Thread sleep( );// 模拟一个耗时相应过程 timer stop();// 任务完成 停止Timer view getLabel () setText(model getText ()); catch (InterruptedException ex) timer stop();// 线程中断 停止Timer view getLabel () setText( 在指定时间内未响应 ); catch (Exception ex) ex printStackTrace(); return;

  执行效果如下

  

  

  

  

cha138/Article/program/Java/gj/201311/27315

相关参考

知识大全 Java使用回调和线程处理耗时响应过程[1]

Java使用回调和线程处理耗时响应过程[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 获取java线程中信息的两种方法[3]

   二回调   轮询方法最大的特点是主类Main不断询问线程类是否结束这实际上大量浪费了运行时间特别是当线程特别多的时候因此如果反过来在线

知识大全 Java多线程处理方式

Java多线程处理方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb

知识大全 Java的线程安全四种方式五个等级[2]

Java的线程安全四种方式五个等级[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Java的线程安全四种方式五个等级[1]

Java的线程安全四种方式五个等级[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 java的线程安全四种方式五个等级

  四种方式sychronized关键字  sychronizedmethod()  sychronized(objectReference)/*block*/  staticsynchronized

知识大全 java回调

  一个类Callable不自己去调用自己的方法让其他类调用她(Callable)自身的方法(通过给其他类提供她自己的引用)  代码(一般javaGUI开发中添加按钮的点击事件)[java]viewp

知识大全 java间的线程通信

  不同线程间进行通信通常有两种简单方法  方法一通过访问共享变量的方式(注需要处理同步问题)  方法二通过管道流  其中方法一有两种实现方法即  方法一a)通过内部类实现线程的共享变量  代码如下 

知识大全 Java的回调函数

Java的回调函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 在Java中实现回调过程

在Java中实现回调过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    摘要:  Java接