zoukankan      html  css  js  c++  java
  • Java多线程中的进程,线程,并行,并发

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

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

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

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

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

    6:并行和并发。
    前者是逻辑上同时发生,指在某一个时间内同时运行多个程序。
    后者是物理上同时发生,指在某一个时间点同时运行多个程序。

    7: Java程序的运行原理:
    由java命令启动JVM,JVM启动就相当于启动了一个进程。
    接着有该进程创建了一个主线程去调用main方法。

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

  • 相关阅读:
    Linux 脚本编写基础
    Centos7下修复 视频播放器(先 安装VLC视频播放器)
    用CentOS 7打造合适的科研环境
    Storm与Spark:谁才是我们的实时处理利器
    Nutch 问题杂记
    三、多线程基础-自旋_AQS_多线程上下文
    二、多线程基础-乐观锁_悲观锁_重入锁_读写锁_CAS无锁机制_自旋锁
    一、多线程基础理论-概念_特性_分类_状态_线程池_线程数配置
    六、ibatis1.2.8查询性能优化,实现百万数据zip导出
    二十、oracle通过复合索引优化查询及不走索引的8种情况
  • 原文地址:https://www.cnblogs.com/fuck1/p/5373597.html
Copyright © 2011-2022 走看看