JAVA实现多线程的两种方法实例分享

乌居

乌居

2016-02-19 08:55

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享JAVA实现多线程的两种方法实例分享吧。
java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。
  Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法:
代码如下:

  Thread t = new Thread();
  t.start();

  start()方法是一个native方法,它将启动一个新线程,并执行run()方法。Thread类默认的run()方法什么也不做就退出了。注意:直接调用run()方法并不会启动一个新线程,它和调用一个普通的java方法没有什么区别。
  因此,有两个方法可以实现自己的线程:
  方法1:自己的类extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。例如:
代码如下:

  public class MyThread extends Thread {
  public run() {
  System.out.println("MyThread.run()");
  }
  }

  在合适的地方启动线程:new MyThread()。start();
  方法2:如果自己的类已经extends另一个类,就无法直接extends Thread,此时,必须实现一个Runnable接口:
代码如下:

  public class MyThread extends OtherClass implements Runnable {
  public run() {
  System.out.println("MyThread.run()");
  }
  }

  为了启动MyThread,需要首先实例化一个Thread,并传入自己的MyThread实例:
代码如下:

  MyThread myt = new MyThread();
  Thread t = new Thread(myt);
  t.start();

  事实上,当传入一个Runnable target参数给Thread后,Thread的run()方法就会调用target.run(),参考JDK源代码:
代码如下:

  public void run() {
  if (target != null) {
  target.run();
  }
  }
展开更多 50%)
分享

猜你喜欢

JAVA实现多线程的两种方法实例分享

编程语言 网络编程
JAVA实现多线程的两种方法实例分享

Java基础 获取java线程中信息的两种方法

编程语言 网络编程
Java基础 获取java线程中信息的两种方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java多线程编程精要之实现线程

Java JAVA基础
Java多线程编程精要之实现线程

JavaScript多线程的实现方法

Web开发
JavaScript多线程的实现方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

关于Java多线程

编程语言 网络编程
关于Java多线程

java Thread 多线程

编程语言 网络编程
java Thread 多线程

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JavaScript中的Screen屏幕对象

JavaScript中的Screen屏幕对象

JavaScipt基本教程之JavaScript语言的基础

JavaScipt基本教程之JavaScript语言的基础
下拉加载更多内容 ↓