下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

解析Java中线程的创建

作者:课课家教育     来源: http://www.kokojia.com点击数:739发布时间: 2016-03-14 18:24:16

标签: java语言java程序java线程

大神带你学编程,欢迎选课

  在java语言出现之前,多线程是通过操做硬件等方法实现的,尽管这是一种有用的方法,但编出的程序很难移植,所以程序员往往为此付出不小的代价。Java是第一个从语言级实现多线程的方法。由于java实现了多线程,使得利用java编写多线程的程序也比较简单,因此这也成了java语言相比于其他语言的一个优势。另外java是运行在虚拟机上的,可移植性强,这个特点和简单的多线程编写配合,使的java的优势更明显。扯的有点远了,回来,下面介绍线程的创建。

解析Java中线程的创建_java语言_java程序_课课家

  在创建我们自己写的线程的时候,java就已经先创建了一个线程,就是我们运行主函数main的线程。有时候我们可能会需要得到当前正在运行的线程,这里我们就可以用Thread类中的静态方法currentThread(),这个函数返回的是一个Thread类的实例的引用,我们可以调用getName()方法获得当前的线程的名字(具体的方法请读者自己查看java的帮助文档)。

  下面我们举一个例子:

  public classaaa

  {

  public static void main(String[] args)

  {

  System.out.println(Thread.currentThread().getName());

  }

  }//main

  下面我们介绍java中怎么创建多线程,java提供了两种创建多线程的方法,如下:

  (1)从Thread类继承;

  (2)实现Runnable接口。

  对于这两种创建线程的方法,都必须实现一个run()方法,因为在我们创建线程后,调用start()启动线程之后,调用的是run()方法。

  这里多说一句,在java中有许多的类跟接口可以实现同样的功能,有些人就感觉这个多此一举。但是认真想想,java为了安全的考虑只支持单继承,但是我们的实际开发中,课程需要同时继承两个类,但是java又是不允许。这里接口就发挥作用了,我们可以继承一个类,同时实现一个或多个接口(对于接口实现的个数java中没有限制)。

  下面介绍第一个创建线程的方法,我们还是以例子的形式给出:

  public classaaa

  {

  public static void main(String[] args)

  {

  System.out.println(Thread.currentThread().getName());

  MyThread mt = new MyThread();//创建MyThread类的一个实例,并把它赋给mt

  mt.start();//启动线程

  }

  }

  class MyThreadextendsThread

  {

  public void run()

  {

  System.out.println(Thread.currentThread().getName());

  }

  }

  上面的例子显示了创建线程的第一方法,多说一句,有时候我们需要在启动线程的时候,去做一些别的工作,这些工作不是我们在创建对象的时候做的,我们可以重写Thread类的start()方法,就像下面一样

  public void start(){

  自己想要做的工作

  Super.start();

  }

  下面我们介绍第二种创建线程的方法,还是以例子的形式给出:

  public classaaa

  {

  public static void main(String[] args)

  {

  System.out.println(Thread.currentThread().getName());

  MyThread mt = new MyThread();//创建MyThread类的一个实例,并把它赋给mt

  Thread t = new Thread(mt);//创建一个Thread类的对象,并且将我们实现了run()方法的MyThread类的对象的实例mt作为参数传入

  t.start();//启动线程

  }

  }

  class MyThreadimplementsRunnable

  {

  public void run()

  {System.out.println(Thread.currentThread().getName());}

  }//main

  Thread-0

  在我实现runnable接口创建线程的时候,我们必须将我们自己写的类的实例作为参数传给一个Thread类的对象,然后在调用该对象的start()方法。

  这里简单的介绍了一下,希望对大家有帮助,如果有错或者不妥当的地方希望指出。

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程