创建线程有两种方法,:
第一种方法:;
继承Thread类。
步骤:
1,定义类继承Thread。
2,复写Thread类中的run方法。
目的:将自定义代码存储在run方法。让线程运行。
3,调用线程的start方法,
该方法两个作用:启动线程,调用run方法。
[java] view plaincopy
class ThreadDemo extends Thread
{
public void run()//使用新线程运行for循环中的代码
{
for (int x=0;x<10;x++ )
{
System.out.println("新线程"+x);//在控制台输出10条测试语句
}
}
public static void main(String[] args)
{
ThreadDemo t = new ThreadDemo();//创建Thread类的对象
t.start();//调用Thread类的start()方法来启动新线程
for (int x = 0;x<10 ;x++ )//在主线程中运行for循环中的代码
{
System.out.println("主线程"+x);//输出十条测试语句
}
}
}
第二种方法:
实现Runnable接口创建线程
步骤:
1,新建一个类,该类实现了Runnable接口并重写了run()方法,.run()方法中包含要在新线程中运行的代码
2,使用刚刚编写的类创建Runnablie接口类型的对象.
3,使用Thread类的构造方法创建Thread类的对象..
4 4,调用Tread类的start()方法来运行新线程
[java] view plaincopy
class RunnableDemo implements Runnable
{
public void run()//使用新线程运行for循环中的代码
{
for (int x=0;x<10;x++ )
{
System.out.println("新线程"+x);//在控制台输出10条测试语句
}
}
public static void main(String[] args)
{
Runnable r = new RunnableDemo();//创建Runnable接口的对象
Thread t = new Thread(r);//利用Runnable接口的对象创建Thread类对象
t.start();//调用Thread类的start()方法来启动新线程
for (int x = 0;x<10 ;x++ )//在主线程中运行for循环中的代码
{
System.out.println("主线程"+x);//输出十条测试语句
}
}
}
java仅支持单继承,创建大量的Tread类对象开销打
Runnable接口不存在这个问题,更加适用
继承Thread:线程代码存放在Thread子类run方法中.
实现Runnable:线程代码存放在接口的子类run中 |
|