Java基础回顾 —线程概念

  1. 什么是线程:
    程序中单独顺序的流控制,线程本身不能运行,只能用于程序中。
  2. 多线程:
    单个程序中可以同时运行多个不同的线程执行不同的任务。
  3. 多线程编程的目的:
    最大限度的利用CPU资源。
  4. java中如果我们自己没用产生线程,那么系统就会给我们产生一个线程(主线程,main方法救灾主线程上运行),我们的程序都是由线程来执行的。
  5. 进程:执行中的程序(程序是静态概念,进程是动态概念。)
    tips1: 进程是程序的一次动态执行过程,从代码加载、执行到执行完毕的一个完整过程,也是进程从产生、发展到消亡的过程
  6. 一个进程可以包含 一个或多个线程。
  7. 一个程序实现多个代码同时交替运行就需要产生多个线程。
  8. CPU 随机的抽出时间,让我们的程序一会做这件事情,一会做另外一件事情。
  9. java内置支持多线程编程。
    多线程程序包含两条或两条以上并发运行的部分,把程序中每个这样的部分叫作一个线程Thread。
    每个线程都有独立的执行路径,因此 多线程是多任务处理的一种特殊方式。
  10. 多任务处理被所有的现代操作系统所支持,多任务处理有 两种截然不同的类型:
    基于进程的和基于线程的.
  11. 基于进程的多任务处理:
    进程Process本质是一个执行的程序,因此其特点是允许你的计算机同时运行两个或更多程序。因此程序是调度程序所分派的最小代码单位。 由于CPU具备分时机制,所以每个进程都能循环获得自己的CPU时间片。且CPU执行速度非常快,使得所有进程好像同时运行一样。
  12. 基于线程的多任务处理:
    线程是最小的执行单位。意味着一个程序可以同时执行两个或多个任务的功能。
    多线程就是一个进程在执行过程中可以产生多个线程,这些线程可以同时存在、同时运行。
  13. 线程与进程之间的区别:
    多个进程之间的内部数据和状态都是完全独立的。而多线程是共享一块内存空间和一组系统资源,有可能互相影响。
    线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小。
  14. 线程的实现:
    java中通过run方法为线程指明要完成的任务,有两种技术来为线程提供run方法:
    继承Thread类并重写run 方法( 必须调用start方法)。
    通过定义实现Runnable接口的类进而实现run方法。
  15. start() 方法启动线程,首先为线程的执行准备系统资源,然后再去调用run方法。
  16. 一个进程至少包含一个线程。
    Java运行时至少启动两个线程:一个main线程和另一个垃圾收集线程
    注意:主线程有可能先执行结束,其他线程不会受到影响,不会随着主线程的结束而结束
  17. 对于单核CPU来说,某个时刻只能有一个线程执行(微观串行),从宏观角度来看,多个线程同时执行(宏观并行)。
  18. 对于双核或者双核以上的CPU来说,可以真正做到微观并行。

Git Thread code

原文地址:https://www.cnblogs.com/nextStep/p/6691257.html