创建多线程有两种方式:
1.声明类的时候继承Thread类,示例如下:
class Person extends Thread{
private String pname;
private int age;
int count=100;
Person(String pname,int age){
this.pname=pname;
this.age=age;
}
public void run(){
while(true){
if(count>0){
try{
sleep(10);
}catch(Exception e){
}
System.out.println(Thread.currentThread().getName()
+pname+"...."+age);
count--;
}
}
}
}
public class ThreadDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p=new Person("zhangsan",23);
Thread t1=new Thread(p);
Thread t2=new Thread(p);
Thread t3=new Thread(p);
Thread t4=new Thread(p);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
2.声明类的时候实现Runnable接口。示例如下:
class Person implements Runnable{
private String pname;
private int age;
int count=100;
Person(String pname,int age){
this.pname=pname;
this.age=age;
}
public void run(){
while(true){
if(count>0){
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+pname+"...."+age);
count--;
}
}
}
}
public class ThreadDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p=new Person("zhangsan",23);
Thread t1=new Thread(p);
Thread t2=new Thread(p);
Thread t3=new Thread(p);
Thread t4=new Thread(p);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
两者的区别
Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是继承Thread的局限。
在实际开发中一个多线程的操作很少使用Thread类,而是通过Runnable接口完成。
此外实现了Runnable接口的多线程还可以达到资源共享的目的。