标签:
java中实现多线程有两种基本方法,一种是继承Thread, 另一种是实现Runnable接口。
但是因为java中子类只能继承一个父类,如果采用继承Thread类,就不能继承其他类,很受限制。
以下是采用继承Thread类的例子:
public class MyThreadTest{
public static void main(String[] args){
MyThread amythread1=new MyThread("my thread 1");
MyThread amythread2=new MyThread("my thread 2");
amythread1.start();//amythread1.run();
amythread2.start();//amythread2.run();
}
}
class MyThread extends Thread{
public MyThread(String name){
super();
this.name=name;
}
public void run(){
for(int i=0;i<20;i++)
System.out.println(name+":"+i);
}
private String name;
}
注意不能使用“amythread1.run(); ”,这样不能启用多线程,只是 普通函数。
比较普遍的做法是采用实现Runnable接口去实现多线程。
实现Runnable接口必须使用Thread类的实例才能创建
具体有两步:
1.把实现Runnable接口的类实例化
2.把第1步实例化的类的对象做为参数提供给新建Thread对象的构造函数。
public class ThreadRunnable implements Runnable
{
public void run()
{
System.out.println(Thread.currentThread().getName());
for(int i=0;i<100;i++)
System.out.println(Thread.currentThread().getName()+"i="+i);
}
public static void main(String[] args)
{
ThreadRunnable t1 = new ThreadRunnable();
ThreadRunnable t2 = new ThreadRunnable();
Thread thread1 = new Thread(t1, "MyThread1");
Thread thread2 = new Thread(t2);
thread2.setName("MyThread2");
thread1.start();//thread1.run();
thread2.start();//thread2.run();
}
}
标签:
原文地址:http://www.cnblogs.com/wudymand/p/4242012.html