技术博客:第十三章 多线程

     

           技术博客:第十三章多线程

并发:

1、宏观上:并发和并行相似,多任务;

2、微观上:一个CPU在做一件事,并没有实现并行,单任务;

并行:

在OS中:

进程:资源分配的最小单位,

线程:CPU调度的最小单位;

线程是进程的一部分!

多线程的实现:

1、继承Thread方法;本身就是实现Runable接口的类;

  创建:

       A extends Thread

      在A中实现Run方法;

  启动:利用继承自Thread 的Start()方法

        A a = new A(); 

2、实现Runnable接口;不能自己运行,需要Thread来调用;

 创建:

       A implements Runnable;

       在A中实现Run方法;

  启动:

       以A的对象为Thread的构造函数的参数创建Thread对象

       并且利用他的Start()方法调度启用线程;

       利用继承自Thread 的Start()方法  

        A a = new A();

        Thread b = new Thread();

         b.start();

3、使用Timer和TimerTask组合实现;

start方法,只有Thread方法中有

创建:

     创建TImeTask子类;并实现Run方法得到线程任务类

      Mytimwtask继承Timetask{

        public void run(){}

}

启动:创建时钟器对象

       利用时钟器对象的Schedule()方法启动线程任务;

        Timer Timer = new Timer();

        timer.schedule(new Mytimertask(),…………);

多线程的实现:

         public class MyfristThread  {

   public static void main(String[] args) {

      //MyThread1 n =   new MyThread1();

      //n.start();

      //MyThread2 m = new MyThread2();

      //Thread th = new Thread(m);

        //th.start();

      for(int i=0;i<10;i++){

      System.out.println("男男女女");

      try {

        Thread.sleep(1000);

      } catch (InterruptedException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

      }

      }

     

   }

}

class MyThread1 extends Thread{

   public void run(){

      for(int i=0;i<10;i++){  

      System.out.println("爱你不会变");

      try {

        Thread.sleep(1000);

      } catch (InterruptedException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

      }

     

      }

     

   }

}

class MyThread2 implements Runnable{

   public void run() {

      for(int i=0;i<10;i++){

        System.out.println("斤斤计较将");

        try {

           Thread.sleep(1000);

        } catch (InterruptedException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

        } 

        } 

}

class MyThread3 extends TimerTask

public void run(){

      for(int i=0;i<10;i++){

      System.out.println("爱你不会变");

      try {

        Thread.sleep(1000);

      } catch (InterruptedException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

      }

             

你可能感兴趣的:(技术博客:第十三章 多线程)