zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    移动web图片高度自适应的解决方案
    高性能滚动 scroll 及页面渲染优化
    Web学习之跨域问题及解决方案
    apply和call用法
    ES6学习之箭头函数
    JS 对象封装的常用方式
    为Array对象添加一个去除重复项的方法
    最全的常用正则表达式大全
    前端如何实现图片懒加载(lazyload) 提高用户体验
    菜鸟教程 Missing parentheses in call to 'print'
  • 原文地址:https://www.cnblogs.com/nextStep/p/6691257.html
Copyright © 2011-2022 走看看