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

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

一.进程和线程

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm中查看某个函数定义_pycharm无法调用模块函数

    pycharm中查看某个函数定义_pycharm无法调用模块函数参考文章:pycharm查看函数信息

    2022年8月28日
  • 使用PreparedStatement执行sql语句

    使用PreparedStatement执行sql语句使用PreparedStatement执行sql语句packagecom.cn.preparedStatement;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importorg.junit.Test;importcom.cn.Util.JdbcUtil;

    2022年6月3日
  • 字符串常量池概述[通俗易懂]

    字符串常量池概述[通俗易懂]字符串常量池概述常量池表(Constant_Pooltable)Class文件中存储所有常量(包括字符串)的table。这是Class文件中的内容,还不是运行时的内容,不要理解它是个池子,其实就是Class文件中的字节码指令。运行时常量池(RuntimeConstantPool)JVM内存中方法区的一部分,这是运行时的内容。这部分内容(绝大部分)是随着JVM运行时候,从常量池转化而来,每个Class对应一个运行时常量池。上一句中说绝大部分是因为:除了Class中常量池内容,还可能包括

    2022年7月28日
  • 新手到黑客的最全入门路径图(附全部学习资料下载)!

    新手到黑客的最全入门路径图(附全部学习资料下载)!点击上方“程序人生”,选择“置顶公众号”第一时间关注程序猿(媛)身边的故事01入门介绍说到黑客,大家可能觉得很神秘,其实狭义上的黑客就是去寻找网站、系统、软件等漏洞,刚入门的黑客大部分从事渗透工作,而渗透大部分属于web安全方向,就是利用漏洞来取得一些数据或达到控制,让对方程序崩溃等效果。02一些常用的名词解释挖洞的话,就相当于在程序中查找漏洞,举一个不大恰当但容易理解的比喻,就像韩非子说所的那个

    2022年6月11日
  • 陈述python中运算符的优先级_numpy逻辑运算符

    陈述python中运算符的优先级_numpy逻辑运算符python逻辑运算符1.成员andornot优先级:()>not>and>or2.and逻辑运算符and,aandb,如果a和b都为True,则返回True,如果其中一个为False,返回False,简言之:一假则假,全真则真3.or逻辑运算符or,aorb,如果a和b有一个为True,则返回True,如果全为False,返回False,简言之:一真则真…

    2022年10月23日
  • datax(10): 源码解读Communication(Datax通讯类)「建议收藏」

    datax(10): 源码解读Communication(Datax通讯类)「建议收藏」前面看了datax的通讯机制,继续看源码—具体的通讯类Communication。根据datax的运行模式的区别,数据的收集会有些区别,这篇文章都是讲的在standalone模式下。一、communication概述DataX所有的统计信息都会保存到Communication类里面。Communication支持下列数据的统计计数器,比如读取的字节速度,写入成功的数据条数/***所有的数值key-value对**/privateMap<String.

    2022年5月17日

发表回复

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

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