public class Lesson5
{
private static int i = 0;
public static void main(String [] args)
{
/* 当我们运行main函数的时候,我们就是在运行主函数
* 因为这是一个单线程,所以只有在运行完LessonDemo1的run函数的代码之后
* 才会去运行Lesson5的里面的代码
* 但是如果我们把LessonDemo1放在另外一个线程中
* 那么LessonDemo1和Lesson5就会运行两个不同的线程中
* 其实运行在两个不同的线程中,那么这两个线程的代码就是相对独立的运行
*
*
*/
new LessonDemo1().run();
while(i < 10)
{
System.out.println("Main():" + Thread.currentThread().getName());
i++;
}
}
}
class LessonDemo1
{
private int j = 0;
public void run()
{
while(j < 10)
{
System.out.println("LessonDemo1:" + Thread.currentThread().getName());
j++;
}
}
}
/*
*这是一个多线程的实例:首先我们在主线程中开启了另外一个线程
*然后在主线程中又执行了另外的代码
*那么此时我们的主线程和我们自己建立的另外一个线程,就有了两个线程
*其实,我们建立的线程并不是在同时运行,而是看谁抢到cpu的内存空间,我们就运行谁
*所以这两个线程是在不断的抢夺之中,所以我们打印出来的线程名称也是相互交换的。
*/
class Lesson5TestDemo1
{
private static int i = 0;
public static void main(String [] args)
{
new Lesson5TestDemo2().start();
while(i < 10)
{
System.out.println("LessonTestDemo1:" +Thread.currentThread().getName());
i++;
}
}
}
class Lesson5TestDemo2 extends Thread
{
private int j = 0;
public void run()
{
while(j < 10)
{
System.out.println("LessonTestDemo2" + Thread.currentThread().getName());
j++;
}
}
}