您的位置:首页 > 编程语言 > Java开发

Java多线程基础-2-简单继承Thread,实现Runnable例子

2016-07-05 16:18 656 查看
前面我们提到实现多线程的三种方式。继承Tread,实现Runnable,和使用Executor框架创建线程池。

1、Tread创建和控制线程。

/**
* Created by wanchuang on 16/7/5.
*/
public class ThreadTest01 extends Thread{
char c;
public ThreadTest01(String name , char c){
super(name);
this.c=c;
}
public void run(){
int k;
char ch;
System.out.println();
System.out.println(getName()+":");
for (k=0;k<26;k++){
ch=(char)(c+k);
System.out.println(ch);
}
System.out.println(getName()+" end !");
}
public static void main(String args[]){
ThreadTest01 t1=new ThreadTest01("thread1",'A');
ThreadTest01 t2=new ThreadTest01("thread2",'a');
t1.start();
t2.start();
System.out.println("current count:"+Thread.activeCount());
}
}
此处有疑问?理论上应该当前线程数为3.但是多次测试为4.
2、Runnable接口实现方式创建控制线程。

/**
* Created by wanchuang on 16/7/5.
*/
public class RunnableTest01 implements Runnable{
char c;
public RunnableTest01(char c){
this.c=c;
}
@Override
public void run() {
char c1;
for (int i=0;i<26;i++){
c1=(char)(c+i);
System.out.println(c1);
}
}
public static void main(String args[]){
RunnableTest01 r1=new RunnableTest01('a');
RunnableTest01 r2=new RunnableTest01('A');
<span style="white-space:pre">	</span>//r1,r2不是线程对象,而是线程对象的目标对象
Thread t1=new Thread(r1);
Thread t2=new Thread(r2);
<span style="white-space:pre">	</span>//以r1,r2为目标对象创建线程对象
t1.start();
t2.start();
System.out.println("current thread:"+Thread.activeCount());
}

}
Runnable中声明了一个run方法。同样Thread.activeCount()方法输出了4.不是很理解此处。应该是3吧?t1,t2,main.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: