一般的Java程序在一个时间段内只能完成一个任务,程序代码主要是顺序执行的。有的时候要求一个Java程序在一段时间内并发完成多个任务就需要使用多线程。比如,对从1到1000的数求和,求平方和。普通Java程序可以执行这两个任务,使用多线程后,可以让一个线程执行求和任务,另一个线程执行求平方和人物,两个线程并发执行。
样例
分析:创建两个线程,一个是SumThread,求和,另一个是SquareSumThread,求平方和。在Java中创建线程最简单的方法就是继承Thread类。
public class SimpleThreadTest {
public static void main(String[] args) {
Thread sum=new SumThread();
Thread squareSum=new SquareSumThread();
sum.start();
squareSum.start();
}
}
class SumThread extends Thread{
public void run(){
int sum=0;
for(int i=1;i<1000;i++)
{
sum+=i*i;
}
System.out.println("平方和:"+sum);
}
}
class SquareSumThread extends Thread{
public void run(){
int sum=0;
for(int i=1;i<=1000;i++)
{
sum+=i;
}
System.out.println("和:"+sum);
}
}
结果
和:500500
平方和:332833500
关键点:
1.通过继承类Thread,创建自己的线程,本例创建了两个线程。
2.线程的核心代码放在run()方法中,也称为线程体。
3.创建线程对象后,run()方法不会自动执行,需要调用start()方法启动线程。
4.多线程是并发执行的,独立线程之间没有确定的顺序关系,输出结果先后顺序不确定,多次反复执行程序后会发现,两个线程的输出结果的先后顺序不确定。