java中线程的简单的线程的多线程的一个区别

来源:互联网 发布:nginx upupw 1.8.0 编辑:程序博客网 时间:2024/06/05 18:18

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++;
  }
 }
}

原创粉丝点击