java线程进程的简单概述

package a一.多线程的概述;
/**

  • 要先了解多线程,必须先了解线程,要了解线程,必须先了解进程,因为线程依赖于进程而存在
  • 什么是进程呢?
  •       通过计算机的任务管理器我们就看到进程的存在,通过观察只有运行的程序,才能出现进程。
    
  •       所以进程就是正在运行的程序,是系统进行资源分配和调用的独立单位
    
  •       ,每一个进程都有它自己的内存空间和系统资源
    
  • 多进程有什么意义呢?
  • 单进程的计算机只能做一件事情,而我们现在的计算机都可以做多件事情
    
  • 举例:一边玩游戏(游戏进程),一边听音乐(音乐进程)。
    
  • 也就是说现在的计算机都是支持多进程的,就可以在一个时间段内执行多个任务。
    
  • 并且呢,可以提高CPU的使用率。
    
  • 问题:
    
  •     一边玩游戏,一边听音乐是同时进行的吗?
    
  •   答:不是,因为单CPU在某一个时间点只能做一件事情。
    
  •   而我们在玩游戏,或者听音乐的时候,是CPU在做着程序间的高效切换让我们觉得是同时进行的。
    

*什么是线程呢?

  •       在同一个进程内又可以执行多个任务,而这每一个任务就可以看成是一个线程
    
  •       线程:是程序的执行单位,执行路径。是程序使用CPU的基本单位。
    
  •       一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成
    
  •       另外,线程是进程中的一个实体,是被系统独立调度和分配的基本单位,
    
  •       线程自己不拥有系统资源,只拥有少量在运行中必不可少的资源,但它
    
  •       可以与同属性一个进程的其他线程共享进程所拥有的的全部资源。一个线程
    
  •       ,可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行。
    
  •       单线程:如果程序只有一条执行路径
    
  •       多线程:如果程序有多条执行路径
    

*多线程有什么意义呢?

  •        多线程的存在,不是提高程序的执行速度。其实是为了提高应用程序的使用率。
    
  •        程序的执行其实都是在抢CPU的资源,CPU的执行权。
    
  •        多个进程是在抢这个资源,而其中某个进程如果执行的路径比较多
    
  •        ,就会有更高的几率抢到CPU的执行权。 我们是不敢保证哪一个线程
    
  •        能够在哪一个时刻抢到,所以线程的执行有随机性 。   
    
  • 进程和线程的主要差别:
  •         同样作为基本的执行单位,线程是划分的比进程更小的执行单位。
    
  •         每一个进程都有一段专用的内存区域。与此相反,线程则共享内
    
  •         存单元(包括代码和数据),通过共享内存单元来实现数据交换
    
  •         实时通信与必要的同步操作。
    
  • 举例:扫雷程序,迅雷下载
  • 大家注意两个词汇的区别:并行和并发
  •        前者是逻辑上同时发生,指在某一个时间内同时运行多个程序
    
  •        后者是物理上同时发生,指在某一个时间点同时运行多个程序 
    
  • java程序的运行原理
  •      由java命令启动JVM,JVM的启动就相当于启动了一个进程。
    
  •      接着由该进程创建了一个主线程去调用main方法
    
  • 思考题:
  •   jvm虚拟机的启动时当线程还是多线程的?
    
  •   答:是多线程的
    
  •   原因是垃圾回收线程是要先启动的否则很容易会出现内存溢出。
    
  •   现在的垃圾回收线程加上前面的主线程,所以最低启动了两个线程。所以jvm的启动其实是多线程               
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值