A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘笑 中级黑马   /  2012-6-11 21:11  /  1354 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

   今天在学习时候发现了创建线程的两种方法,第一种就是大学课本里讲的最多的extends Thread,然后调用start()方法。第二种我以前从来没见过,即通过实现 Runnable接口来创建线程。觉得有必要记下来与大家分享一下,下面即是程序:
import java.io.*;
import java.util.*;
public class foo implements Runnable{
public void run(){
    String s=null; //局部变量在使用前一定要初始化!!!!!
      System.out.println("s=" + s);
}
   public static void main (String[] args){
new foo().start();
  
   }
}
需要注意的是局部变量一定要初始化,切记切记!

2 个回复

正序浏览
创建线程有两种方法:继承Thread类和实现Runnable接口。
一种是继承 Thread 类,一种是 实现Runnable 接口,需要重写或者实现 run()方法。
因为java是单继承的,所以不可能让所有的类都继承Thread类,所以必须有这个Runnable 接口。

方法一:继承 Thread 类,覆盖方法 run(),我们在创建的 Thread 类的子类中重写 run() ,加入线程所要执行的代码即可。下面是一个例子:
public class MyThread extends Thread {
int count= 1, number;
public MyThread(int num) {
number = num;
System.out.println("创建线程 " + number);
}
public void run() {
while(true) {
System.out.println("线程 " + number + ":计数 " + count);
if(++count== 6) return;
}
}
public static void main(String args[]) {
for(int i = 0; i < 5; i++) new MyThread(i+1).start();
}
}

方法二:实现 Runnable 接口
  Runnable 接口只有一个方法 run(),我们声明自己的类实现 Runnable 接口并提供这一方法,将我们的线程代码写入其中,就完成了这一部分的任务。但是 Runnable 接口并没有任何对线程的支持,我们还必须创建 Thread 类的实例,这一点通过 Thread 类的构造函数public Thread(Runnable target);来实现。下面是一个例子:
public class MyThread implements Runnable {
int count= 1, number;
public MyThread(int num) {
number = num;
System.out.println("创建线程 " + number);
}
public void run() {
while(true) {
System.out.println("线程 " + number + ":计数 " + count);
if(++count== 6) return;
}
}
public static void main(String args[]) {
for(int i = 0; i < 5; i++) new Thread(new MyThread(i+1)).start();
}
}
回复 使用道具 举报
玩 真的不知道啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马