乐趣区

关于java:Java-多线程浅谈

一. 多线程

  • 多线程的应用

    多线程的应用,能够编写出十分高效的程序。不过如果你创立太多的线程,程序执行的效率实际上是升高了,而不是晋升了。

  • 并发与并行

    并发 :指多个事件在 同一个时间段内 (10 秒内)产生。
    并行 :多个事件在 同一时刻 产生(同时产生)。

  • 线程与过程的区别

    过程 就是应用程序,每个过程里有多个线程。而线程是一组指令的汇合,能够在程序里独立执行。
    具体化了解:咱们用的手机有多个 APP,我想要边用网易云听歌边用 idea 写代码还想边用迅雷下载学习材料,而后用迅雷下载多个软件。在该案例外面能够把多个不同的的 APP 了解为过程,把迅雷外面的多个下载的工作了解为线程。

  • 多线程的创立

    多线程的创立有四种办法:
    1. 实现 Runnable 接口;
    2. 继承 Thread 类自身;
    3. 应用外部匿名类;
    4.Callable 和 Future 创立线程。
    但咱们先只讲前三种。


一、继承 Thread 类,重写 run 办法 – 记住开启线程的办法是 start()不是 run()

class day1 dextends Thread {【run 办法中编写 多线程须要执行的代码】publicvoid run() {for (inti = 0; i< 10; i++) {System.out.println("i:" + i);
    }
  }
}

二、实现 Runnable 接口,重写 run 办法

class day2 implements Runnable {
 @Override
  public void run() {for (inti = 0; i< 10; i++) {System.out.println("i:" + i);
    }
   }
 }

三、应用外部匿名类

class day3{public static void main(String[] args) {Runnable r = new Runnable(){public void run(){for (int i = 0; i < 20; i++) {System.out.println("琉西亚"+i);
    }
  }
};
  new Thread(r).start();
  for (int i = 0; i < 20; i++) {System.out.println("刘欣雨"+i);
    }
  }
}

留神:
实现 Runnable 接口比继承 Thread 类好:

  1. 能够多个雷同的线程去共享同一个资源。
  2. 能够防止 java 中的单继承的局限性。
  3. 减少程序的健壮性,实现解耦操作。
  • 多线程的运行状态转换图


    当 new 一个线程时为新建状态,当调用 start 办法返回时为就绪状态,当 CPU 调用 run 办法时处于运行状态,当处于阻塞状态时可能为调用 sleep、调用 I / O 被阻塞,调用完 run 办法为死亡状态。

退出移动版