zoukankan      html  css  js  c++  java
  • java 22

    1:要想了解多线程,必须先了解线程,而要想了解线程,必须先了解进程,因为线程是依赖于进程而存在。

    2:什么是进程?
      通过任务管理器我们就看到了进程的存在。
      而通过观察,就可以发现只有运行的程序才会出现进程。
      进程:就是正在运行的程序。
      进程是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。

    3:多进程有什么意义呢?
      单进程的计算机只能做一件事情,而我们现在的计算机都可以做多件事情。
      举例:一边玩游戏(游戏进程),一边听音乐(音乐进程)。
      也就是说现在的计算机都是支持多进程的,可以在一个时间段内执行多个任务。
      并且呢,可以提高CPU的使用率。

    问题:
      一边玩游戏,一边听音乐是同时进行的吗?
      不是。因为单CPU在某一个时间点上只能做一件事情。
      而我们在玩游戏,或者听音乐的时候,是CPU在做着程序间的高效切换让我们觉得是同时进行的。

    4:什么是线程呢?
      在同一个进程内又可以执行多个任务,而这每一个任务我就可以看出是一个线程。
      线程:是程序的执行单元,执行路径。是程序使用CPU的最基本单位。
      单线程:如果程序只有一条执行路径。
      多线程:如果程序有多条执行路径。

    5:多线程有什么意义呢?
      不是提高程序的执行速度。其实是为了提高应用程序的使用率。
      程序的执行其实都是在抢CPU的资源,CPU的执行权。
      多个进程是在抢这个资源,而其中的某一个进程如果执行路径比较多,就会有更高的几率抢到CPU的执行权。
      我们是不敢保证哪一个线程能够在哪个时刻抢到,所以线程的执行有随机性。

    进程:
      正在运行的程序,是系统进行资源分配和调用的独立单位。
      每一个进程都有它自己的内存空间和系统资源。
    线程:
      是进程中的单个顺序控制流,是一条执行路径
      一个进程如果只有一条执行路径,则称为单线程程序。
      一个进程如果有多条执行路径,则称为多线程程序。

    举例:
      扫雷程序,迅雷下载

    大家注意两个词汇的区别:并行和并发
      并行:是逻辑上同时发生,指在某一个时间段同时运行多个程序。
      并发:是物理上同时发生,指在某一个时间点同时运行多个程序。

    Java程序的运行原理:
      

    java 命令会启动 java 虚拟机,启动 JVM,等于启动了一个应用程序,也就是启动了一个进程。

    该进程会自动启动一个 “主线程” ,然后主线程去调用某个类的 main 方法。

    所以 main方法运行在主线程中。在此之前的所有程序都是单线程的。



    思考题:
      jvm虚拟机的启动是单线程的还是多线程的?
      多线程的。
      原因是垃圾回收线程也要先启动,否则很容易会出现内存溢出。
      现在的垃圾回收线程加上前面的主线程,最低启动了两个线程,所以,jvm的启动其实是多线程的。

    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    Android流畅度测试
    linux常用操作指令
    SQL语句
    客户端专项测试谈
    我的面经(ing)
    整理面试题
    百度质量部测试开发面试题
    UIResponder响应链
    NSURLSession进行网络请求
    命令行工具打包
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5932420.html
Copyright © 2011-2022 走看看