Java中实现多线程的方法有哪些

  介绍

这篇文章将为大家详细讲解有关Java中实现多线程的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

我们在创建的线程类的子类中重写()运行,加入线程所要执行的代码即可。

下面是一个例子:

公共类MyThread延伸线
  {
  int数=1,数量;
  公共MyThread (int num)
  {
  数量=num;
  System.out.println
  (“创建线程“;+数量);
  }
  公共空间run () {
  而(真){
  System.out.println
  (“线程“;+数量+“:计数“+数);
  如果(+ +数==6)返回;
  }
  }
  公共静态void main (String参数[])
  {
  (int i=0;我<5;我+ +)新MyThread (i + 1) .start ();
  }
  }

Applet

线程

那么如何限制这个类必须包含这一方法呢?当然是使用接口!(虽然抽象类也可满足,但是需要继承,而我们之所以要采用这种新方法,不就是为了避免继承带来的限制吗?)

Java Runnable

Runnable

公共类MyThread实现Runnable
  {
  int数=1,数量;
  公共MyThread (int num)
  {
  数量=num;
  System.out.println(“创建线程“;+数量);
  }
  公共空间run ()
  {
  而(真)
  {
  System.out.println
  (“线程“;+数量+“:计数“+数);
  如果(+ +数==6)返回;
  }
  }
  公共静态void main (String参数[])
  {
  for (int i=0;我<5,我+ +)新线程(新MyThread (i + 1) .start ();
  }
  }

线程

Runnable

ExecutorService

导入java . util . concurrent。*;
  进口java.util.Date;
  进口并不知道;
  进口java.util.ArrayList;
  
  @SuppressWarnings (“unchecked")
  
  公共类测试{
  公共静态void main (String [] args)把中
  InterruptedException {
  System.out.println(“——程序开始运行——“);
  日期date1=new日期();
  int taskSize=5;//创建一个线程池
  ExecutorService池=Executors.newFixedThreadPool (taskSize);//创建多个有返回值的任务
  名单列表=new ArrayList ();
  for (int i=0;我& lt;taskSize;我+ +){
  可调用的c=new MyCallable (i +“;“);//执行任务并获取未来对象
  未来f=pool.submit (c);//System.out.println(“,“祝辞的在;+ f.get () .toString ());
  list.add (f);
  }//关闭线程池
  pool.shutdown ();//获取所有并发任务的运行结果
  对未来(f:列表){//从未来对象上获取任务的返回值,并输出到控制台
  System.out.println(“,“祝辞的在;+ f.get () .toString ());
  }
  日期date2=new日期();
  System.out.println(“——程序结束运行- - - - -,程序运行时间【“
  + (date2.getTime ()——date1.getTime()) +“毫秒】“);
  }
  }
  类MyCallable实现可调用的{
  私人字符串taskNum;
  MyCallable(字符串taskNum) {
  这一点。taskNum=taskNum;
  }
  公共对象调用()抛出异常{
  System.out.println(“,“祝辞的在;+ taskNum +“任务启动“);
  日期dateTmp1=new日期();
  thread . sleep (1000);
  日期dateTmp2=new日期();
  长时间=dateTmp2.getTime ()——dateTmp1.getTime ();
  System.out.println(“,“祝辞的在;+ taskNum +“任务终止“);
  返回taskNum +“任务返回运行结果,当前任务时间【“+时间+“毫秒】“;
  }
  }

<强>

执行人

公共静态ExecutorService newFixedThreadPool (int nThreads)


公共静态ExecutorService newCachedThreadPool执行()

公共静态ExecutorService newSingleThreadExecutor ()

执行人

公共静态ScheduledExecutorService newScheduledThreadPool (int corePoolSize)

计时器ExecutoreService

关于Java中实现多线程的方法有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

Java中实现多线程的方法有哪些