关键词:Runnable,Thread,start,run等等。
创建一个线程的两种方式:
一是继承Thread类
二是实现Runnable接口:
没错,java中创建线程就是这么简单,注意:启动线程是start()方法。有些新手可能会犯这个的错误:[quote]
还有就是实现Runnable接口的线程是这样子启动的:[quote]
[quote]tij-4的作者觉得把Thread改名字为Task更为合适。[/quote]
为什么有了第一种方式,还要有第二种方式呢?
java里面是没有多继承的,但它可以实现多个接口。比如说你用继承的方式创建线程会碰到这种麻烦,一些特殊要求一定要继承一个基类,这下麻烦了;所以你有第二个选择,那就是采用实现Runnable方式创建线程,现在可以继承那个基类了。
创建一个线程的两种方式:
一是继承Thread类
package org.iteye.bbjava.mutilthread;
public class MainThread extends Thread{
Integer maxInt=0;
public void run(){
// maxInt=new Integer("123");
while(maxInt<1000){
maxInt++;
if(maxInt%6==0)
// try {
// Thread.sleep(10);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
System.out.println(maxInt);
}
// System.out.println(maxInt.MAX_VALUE);System.out.println(maxInt);
// System.out.println(maxInt.MIN_VALUE);
}
public static void main(String []args){
Thread aTread=new MainThread();
Thread at=new Thread(new AnotherThread());
aTread.start();
at.start();
}
}
二是实现Runnable接口:
package org.iteye.bbjava.mutilthread;
public class AnotherThread implements Runnable{
@Override
public void run() {
int i=0;
while(i<1000){
i++;
if(i%5==0)
// try {
// //Thread.sleep(10);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
System.out.println("what should I do?");}
}
}
没错,java中创建线程就是这么简单,注意:启动线程是start()方法。有些新手可能会犯这个的错误:[quote]
Thread aTread=new MainThread();
aThread.run();//这不是启动线程的"钥匙"。
[/quote]
还有就是实现Runnable接口的线程是这样子启动的:[quote]
Thread at=new Thread(new AnotherThread());
at.start();
[/quote]
[quote]tij-4的作者觉得把Thread改名字为Task更为合适。[/quote]
为什么有了第一种方式,还要有第二种方式呢?
java里面是没有多继承的,但它可以实现多个接口。比如说你用继承的方式创建线程会碰到这种麻烦,一些特殊要求一定要继承一个基类,这下麻烦了;所以你有第二个选择,那就是采用实现Runnable方式创建线程,现在可以继承那个基类了。