黑马程序
多线程的创建
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
线程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的一个执行单位。线程就是进程中的一个独立的控制单元,每个线程都至少有一个线程。线程的创建有两种方式。
第一种:继承Thread类。
步骤:1、定义类继承Tread。
2、实现run方法。
3、调用start方法来启动线程
例如:
//继承Thread创建TDemo类
class TDemoextends Thread {
//重写父类Thread中的run方法
publicvoid run(){
for(int i=0;i<10;i++){
System.out.println("Demo is run....");
}
}
}
//主线程
publicclass ThreadDemo{
publicstaticvoid main(String[] args){
//创建TDemo的对象
TDemo t=new TDemo();
//启动线程
t.start();
for(int i=0;i<10;i++){
System.out.println("main threadis run....");
}
}
}
第二种:继承Runnable接口
1、 定义类实现Runnable接口
2、 创建Thread类对象
3、 将Runnable子类对象作为参数传给Thread类对象
4、 Thread类对象调用Start()启动线程
例如:
class TRunnableimplements Runnable{
staticintnum=20;
publicvoid run(){
while(num>0){
System.out.println(Thread.currentThread().getName()+" is run...."+num--);
}
}
}
publicclass RunnableDemo {
/**
* @param args
*/
publicstaticvoid main(String[] args) {
// TODO Auto-generatedmethod stub
//int num=20;
TRunnable t=new TRunnable();
Thread t1=new Thread(t);
t1.start();
Thread t2=new Thread(new TRunnable());
t2.start();
}
}
两种创建线程方式区别:继承Thread线程代码存放Thread子类run()中。
继承Runnable接口线程代码存在接口的子类run方法中。可以共享对象中的数据,避免了单继承的局限 性。
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------