多线程(一)—进程和线程的概念

多线程(一)—进程和线程的概念

一.进程和线程

1)概念区别

进程:正在进行的程序【代码块】,操作系统会为正在运行的程序分配内存空间
线程:本质就是一条执行路径,可以理解为是进程的子任务【迅雷、百度网盘多资源下载】, 一个进程可以只包含一个线程,也可以包含多个线程

2)问题:默认java虚拟机进程开辟了几条线程?

答:至少有两条线程,主线程[main方法],垃圾回收线程[GC守护线程]

三.多进程和多线程

1)概念区别

多进程:在操作系统的层面上,同时运行多个程序
多线程:在同一进程的层面上,同时运行多条程序

2)开启多线程和开启多进程的好处?

多进程的好处: 提高了CPU的使用率
多线程的好处: 提高了进程的使用率,从而提高了CPU的使用率

3)为什么需要多线程?

    1. 防止线程阻塞,提高用户体验
    1. 能够提高程序的执行效率
    1. 为了能够让多个任务看起来像是”同时执行”

四.多线程执行原理

  • 1.上下文切换: 在多个线程之间切换执行,称为上下文切换
  • 2.在Java中,CPU采用抢占式【随机性】调度模型获取CPU的资源
  • 3.CPU在某一个时间刻度上只能够执行一个进程的一个线程的一条原子性语句
  •  注意: 原子性语句: 不可再分割的语句
    
  • 4.CPU执行速度非常快,在上下文切换的过程我们肉眼无法察觉,
  • 所以开启多个线程本质上并不能够提高系统的执行速度,反而会降低速度
  • 但是合理地开辟多线程,可以提高CPU的使用率,也可以提高进程的效率

五.重要的概念

1.并行和并发

并发:在同一个时间段[可以分割的时间]可以同时执行[单核处理器]
并行:在同一时间刻度[不可再分割的时间单位]可以同时执行[多核处理器]
高并发:线程数量很大

2.同步和异步:

同步:按照顺序依次执行每一个任务,不会出现线程安全问题
异步:可以同时执行多个任务,相互之间互不影响,例如ajax请求

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2338.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 私网ip和公网ip_详解

    私网ip和公网ip_详解备注:此博客为转载,原作者地址请点击此处 版权声明:本文为小小呆原创文章,转载请注明出处! https://blog.csdn.net/gui951753/article/details/79210535  IP可以分为PublicIP和Privat…

    2022年6月11日
    39
  • 计算机硬件历史

    计算机硬件历史计算机硬件是人类处理运算与储存资料的重要元件,在能有效辅助数值运算之前,计算机硬件就已经具有不可或缺的重要性。最早,人类利用类似符木1的工具辅助记录,像是腓尼基人使用黏土记录牲口或谷物

    2022年3月29日
    43
  • POD POL_胖五详细介绍

    POD POL_胖五详细介绍主要为Pod资源的介绍,Pod的结构,定义,配置和启动的方法

    2022年8月12日
    8
  • JAVASocket实现聊天室「建议收藏」

    JAVASocket实现聊天室「建议收藏」JAVASocket实现聊天室文章目录JAVASocket实现聊天室Sokcet是什么JAVASOCKET编程中的两个重要对象ServerSocket构造方法acceptbindcloseSocket构造方法getInputStream,getOutputStreamclose聊天室实现服务端实现客户端实现读线程实现写线程实现运行结果Sokcet是什么socket本质上是两个端点之间的通…

    2022年6月15日
    28
  • Centos7安装Nginx详细安装步骤

    Centos7安装Nginx详细安装步骤Centos7安装Nginx步骤手动配置nginx的yum仓库使用yum命令安装nginx启动nginx访问nginx1.指定nginx的yum仓库说明:centos系统中默认的yum仓库中没有nginx的安装包,所以要想安装nginx需要单独指定它的仓库地址1.1将nginx.repo上传到Linux服务器下的/etc/yum.repos.d/下nginx.repo文件…

    2022年4月30日
    41
  • dropdownlist绑定数据_containsall方法

    dropdownlist绑定数据_containsall方法前台<asp:DropDownListID=”DDL_Gly”runat=”server”AutoPostBack=”True”OnSelectedIndexChanged=”DDL_Gly_Change”></asp:DropDownList><asp:HiddenFieldID=”hf…

    2025年10月27日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号