知识大全 强大的多线程和倒计时程序

Posted

篇首语:忧劳可以兴国,逸豫可以亡身。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 强大的多线程和倒计时程序相关的知识,希望对你有一定的参考价值。

  多线程技术是非常实用的技术 特别是碰到有关运行多个任务的程序 就只有多线程才能满足你的要求 在以下程序中我所展示的是一个倒计时程序及利用Callable接口(不是Runnable接口)来返回一个你所要求的值 关于这方面的知识 你要多看一下API文档中的线程池类executor和callable接口 如果读者感兴趣的话以下的代码一定要认真的看 特别是我标了注释的地方 相信读者一定会有收获的 还可以把下面的代码复制下来自己去运行一下看一下结果 如果不懂的地方可以发到我的邮箱 本人很荣幸为您解答 只要我力所能及的事我一定会去帮助您!

  package rick_demo;

  import java awt *;

  import java awt event *;

  import java util Calendar;

  import ncurrent Callable;

  import ncurrent ExecutionException;

  import ncurrent ExecutorService;

  import ncurrent Executors;

  import ncurrent Future;

  import java util ArrayList;

  import javax swing *;

  public class Test extends JFrame

  private static final long serialVersionUID = L;

  private String[] str=new String[ ];

  String bin = new String();

  JTextField jf;

  JTextArea ja;

  JScrollPane jp;

  JButton jButton ;

  private static short coin= ;

  JButton jButton ;

  Calendar now;

  int hour;

  int hourEnd;

  int minute;

  int minutend;

  int second;

  int secondend;

  int hourend;

  int minutePlus;

  int secondPlus;

  Thread t;

  boolean right = true;

  public Test()

  setSize( );

  jf = new JTextField( );

  ja = new JTextArea( );

  //ja append( hello\\n + world );

  jp =new JScrollPane(ja);

  jp setHorizontalScrollBarPolicy(JScrollPane HORIZONTAL_SCROLLBAR_ALWAYS);

  jp setVerticalScrollBarPolicy(JScrollPane VERTICAL_SCROLLBAR_ALWAYS);

  for(int i= ;i< ;i++)

  str[i] = new String();

  jf setText( 单击按纽进行相应的操作 );

  jButton = new JButton( 显示时间剩余时间 );

  jButton = new JButton( 暂停 );

  Container container = getContentPane();

  container setLayout(new FlowLayout());

  container add(jf );

  container add(jButton );

  container add(jButton );

  container add(jp);

  //获取系统刚开始运行的初始值

  now = Calendar getInstance();

  hourEnd = now get(Calendar HOUR_OF_DAY) + ;

  minutePlus = now get(Calendar MINUTE);

  secondPlus = now get(Calendar SECOND);

  t = new Thread(new Runnable()

  public void run()

  while (true)

  while (right)

  try

  Thread sleep( );

  jf setText(CalTime());

   catch (InterruptedException e)

  e printStackTrace();

  

  

  

  

  );

  t start();

  jButton addActionListener(new ActionListener()

  public void actionPerformed(ActionEvent event)

  right = true;

  

  );

  jButton addActionListener(new ActionListener()

  public void actionPerformed(ActionEvent g)

  right = false;

  

  );

  setVisible(true);

  

  public String CalTime()

  now = Calendar getInstance();

  hour = now get(Calendar HOUR_OF_DAY);

  minute = now get(Calendar MINUTE);

  second = now get(Calendar SECOND);

  if (hourEnd >= hour)

  hourend = hourEnd hour;

  secondend = second+secondPlus;

  minutend = minute+minutePlus;

  

  return 小时倒计时hour: + hourend + minute: + minutend

  + second: + secondend;

  

  public String[] work() //多线程关键代码

  ExecutorService exec= Executors newCachedThreadPool();

  ArrayList > results= new ArrayList >();

  for(int i=0;i<10;i++)

  results.add(exec.submit(new TaskT(i)));

  for(Future fuck : results)

  try

  bin = fuck.get() ;

  str[coin] = bin;

  coin++;

   catch(InterruptedException e)

  System.exit(1);

   catch(ExecutionException e)

  

  exec.shutdown();

  return str;

  

  public void setStr(String[] alph)

  for(int i=0;i

  ja.append(alph[i]+"\\n");

  

  public static void main(String args[])

  Test sleep = new Test();

  sleep.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  sleep.setStr(sleep.work());

  

  

  class TaskT implements Callable

  private int id=0;

  public TaskT(int id)

  this.id=id;

  

  public String call()

  return "TaskT "+id;

  

cha138/Article/program/Java/gj/201311/27534

相关参考

知识大全 Java 程序中的多线程(四)

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

知识大全 Java 程序中的多线程(二)

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

知识大全 Java 程序中的多线程(一)

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

知识大全 .NET下的多线程编程应用程序域

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

知识大全 java定时启动线程

  在实际应用中很多情况需要定时运行程序比如分钟或者小时执行一次程序对此操作java和C#一样可以使用Timer计时器实现即javautilTimer中的Timer类  Timer的定义Timerti

知识大全 解析Java的多线程机制

解析Java的多线程机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一进程与应用程序的区别 

知识大全 编写高效的线程安全类

 在语言级支持锁定对象和线程间发信使编写线程安全类变得简单本文使用简单的编程示例来说明开发高效的线程安全类是多么有效而直观  Java编程语言为编写多线程应用程序提供强大的语言支持但是编写有用的没有错

知识大全 Heritrix的多线程ToeThread和ToePool

Heritrix的多线程ToeThread和ToePool  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 关于线程的停止问题

  多线程是java的一个优势java使得程序员可以很方便的进行多线程程序开发获得更好的性能  关于多线程的概念以及一般的多线程编程比如如何以及为何实现runnable接口为何stop()会被Depr

知识大全 Java的多线程-实现多线程及线程的同步

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