java线程的实现方式.docxVIP

  • 1
  • 0
  • 约3.23千字
  • 约 8页
  • 2019-03-21 发布于广东
  • 举报
java线程的实现方式想索取更多相关资料请加qq:649085085或登录PS;本文档由北大青鸟广安门收集自互联网,仅作分享之用。 多线程一直给大家一种很难的感觉,其实接触了解之后你会发现,没有大家想的那么深奥,接下来我会分享我学习多线程的经历给大家,下面先简单的介绍下实现线程的三种方式:  1、继承Thread  (1)定义Thread类的子类,并重写该类的run方法,该方法的方法体就代表了线程需要完成的任务。可以把run方法称为线程执行体。  (2)创建Thread子类的实例,即创建了线程对象。  (3)调用线程对象的start方法来启动线程。  package com.xiaomo.thread;  public class ExtendThread extends Thread {  private int i;  public void run() {  // 当线程继承Thread类时,直接使用this即可获取当前线程  // Thread对象的getName()返回当前线程的名字  // 因此可以直接调用getName()方法返回当前线程的名字  for (; i 100; i++) {  System.out.println(this.getName() + + i);  }  }  public static void main(String[] args) {  for (int i = 0; i 100; i++) {  // 调用Thread的currentThread()方法获取当前线程  System.out.println(Thread.currentThread()。getName() + + i);  if (i == 20) {  // 创建并启动第一个线程  new ExtendThread()。start();  // 创建并启动第二个线程  new ExtendThread()。start();  }  }  }  }  结果:  main 0  main 1  .  .  main 19  main 20  Thread-0 0  Thread-0 1  .  .  Thread-0 21  Thread-0 22  .  .  Thread-1 98  Thread-1 99  继承Thread类的实现类不共享实例属性。  2、实现Runnable  (1)定义Runnable接口的实现类,并重写该接口的run方法,该方法的方法体就是该线程的线程执行体。  (2)创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象。  (3)调用线程对象的start方法来启动该线程。  package com.xiaomo.thread;  public class ImplRunnable implements Runnable {  private int i;  public static void main(String[] args) {  for (int i = 0; i 100; i++){  System.out.println(Thread.currentThread()。getName()+ +i);  if(i == 20){  ImplRunnable ir = new ImplRunnable();  new Thread(ir,线程一)。start();  new Thread(ir,线程二)。start();  }  }  }  @Override  public void run() {  for (; i 100; i++) {  // 当线程实现Runnable接口时  // 如果想获得当前线程,只能用Thread.currentThread()方法  System.out.println(Thread.currentThread()。getName() + + i);  }  }  }  结果:  main 0  main 1  main 2  .  .  .  main 19  main 20  线程一 0  线程一 1  .  .  .  线程一 70  线程二 72  main 46  线程二 74  线程一 73  线程二 75  .  .  .  线程一 79  main 98  main 99 实现Runnable类的实现类共享实例属性。  3、使用Callable和Future创建线程  (1)创建Callable接口的实现类,并实现cal方法,该call方法将作为线程执行体,且该call方法有返回值。  (2)创建Callable实现类的实例

文档评论(0)

1亿VIP精品文档

相关文档