创建多线程的几种方法,thread创建多线程

  创建多线程的几种方法,thread创建多线程

  线程的创建方式

  总结一下多线程的创建方式,多线程的实现一共四种方法,接下来将详谈一下创建的方式

  1、继承线类,而后覆写运行()方法

  2、实现可追捕的接口,而后覆写运行()方法

  3、实现请求即付的接口,而后覆写打电话方法

  4、线程池(后面专门说,因为较复杂)

  注意:无论使用哪种方式创建线程,启动线程一律使用Thread类提供的start()方法。

  1.继承Thread类覆写run方法

  类神话故事扩展线程{

  私有字符串标题;

  私有int票=20;

  公共MyThread(字符串标题){

  this.title=标题

  }

  public void run() { //放每个线程的子任务

  而(票证0) {

  System.out.println(当前线程为标题,还剩下车票-票);

  }

  }

  }

  公共类ThreadTest {

  公共静态void main(String[] args) {

  MyThread myThread1=新的MyThread(黄牛a’);

  神话线索神话线索2=新的MyThread(黄牛b’);

  MyThread myThread3=新的MyThread(黄牛c’);

  流言1。start();

  流言2。start();

  流言3。start();

  }

  }2.实现Runnable接口覆写run方法

  MyRunnable类实现可运行{

  @覆盖

  公共无效运行(){

  for(int I=0;i 10i ){

  系统。出去。println(线程。当前线程().getName()、I= I);

  }

  }

  }

  公共类RunnableTest {

  公共静态void main(String[] args) {

  runnable runnable=new my runnable();//向上转型

  新线程(可运行,线程a’).start();//设置线程名字

  新线程(可运行)。start();//没有设置线程名字,则是系统默认从线程-(0,1,2.)

  线程thread1=新线程(runnable);

  thread1.setName(线程b’);//调用集合名称()设置名字

  线程1。start();

  }

  }这里呢顺便介绍了线程名字的创建3种:

  (1)在括号后直接加名字

  (2)调用集合名称()设置名字

  (3)不设置名字,则是系统默认从线程-(0,1,2.)

  3.实现Callable接口覆写callV方法

  MyCallable类实现可调用字符串{

  私有int票=20;

  @覆盖

  公共字符串调用()引发异常{

  而(票证0){

  系统。出去。println(线程。当前线程().getName()还剩下车票-票);

  }

  返回票卖完了,再见;

  }

  }

  公共类CallableTest {

  公共静态void main(String[] args)引发ExecutionException、InterruptedException {

  //产生请求即付的对象

  my callable my callable=new my callable();

  //产生未来任务对象

  未来任务未来任务=新的未来任务(我的可调用);

  螺纹螺纹=新线程(未来任务);

  线程。start();

  系统。出去。println(未来任务。get());//接收请求即付的对象的返回值

  }

  }1.先产生请求即付的对象

  2.产生未来任务对象

  3.创建线传入未来任务对象

  4.接收请求即付的接口的返回值是将来的中获取()方法

  三个创建线程的方式比较

  1.继承线类有单继承局限,相对而言实现可追捕的接口更加灵活,并且线类本身也实现了可追捕的接口辅助真实线程类

  2.实现可追捕的接口可以更好的实现程序共享的概念

  3.请求即付的接口就是需要有返回值时用到

  以上内容若有明显错误请指出,不胜感激。谢谢!

  更多相关内容请访问服务器端编程语言(专业超文本预处理器的缩写)中文网:JAVA视频教程以上就是多线程-线程的创建的详细内容,更多请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: