Java多线程001——一图读懂线程与进程

本博客 猫叔的博客,转载请申明出处

视频教程

Java猫说-多线程教程001

前言

本系列将由浅入深,学习Java并发多线程。

一图读懂线程与进程

  • 1、一个进程可以包含一个或多个线程。(其实你经常听到“多线程”,没有听过“多进程”嘛)
  • 2、进程存在方法区
  • 3、线程存在程序计数器
  • 4、堆占最大内存,其为创建时分配的,是多线程共享的,主要存放new创建的对象
  • 5、方法区也是多线程共享的,主要存放类、常量、静态变量
  • 6、CPU的基本执行单位是线程(注意!不是进程)
  • 7、由此,线程需要一个程序计数器记录当前线程要执行的指令地址
  • 8、当CPU的时间片用完,让出后记录当前执行地址,下次继续执行(时间片轮询)
  • 9、只有执行Java代码时pc技数器记录的才是下一条指令的地址,执行native方法,则记录的是undefined地址
  • 10、线程中的栈,只要存储线程局部变量、调用栈帧

栈帧:C语言中,每个栈帧对应着一个未运行完的函数。栈帧中保存了该函数的返回地址和局部变量。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏jeremy的技术点滴

免编译在JSP中直接写react代码

最近参与了一个历时4-5年的项目,项目是一个后台管理系统,访问量并不高,但经常根据业务方的一些特殊需求,在原有代码添加功能。项目所采用的技术架构还十分老旧,后台...

16910
来自专栏jeremy的技术点滴

servicecomb-saga开发实战

最近的工作主要是微服务框架的设计与开发,期间要解决多个微服务的分布式事务问题,由于要解决的主要场景是用spring boot写的java项目,最终选择了业界成熟...

72420
来自专栏颇忒脱的技术博客

使用Prometheus+Grafana监控JVM

4) 运行以下命令启动3个Tomcat,记得把<path-to-prom-jvm-demo>替换成正确的路径:

92220
来自专栏颇忒脱的技术博客

ClassLoader(一)- 介绍

讲到bootstrap class loader就不得不说三种常见的ClassLoader实现。

8930
来自专栏颇忒脱的技术博客

JVM执行方法调用(一)- 重载与重写

JVM是怎么处理重载的?其实是编译阶段编译器就已经决定好调用哪一个重载方法。看下面代码:

9210
来自专栏java 成神之路

Netty 之 FileRegion 文件传输

Netty 传输文件的时候没有使用 ByteBuf 进行向 Channel 中写入数据,而使用的 FileRegion。下面通过示例了解下 FileRegion...

80860
来自专栏颇忒脱的技术博客

JVM运行时数据区域

8120
来自专栏jeremy的技术点滴

Java开发小技巧

平时开发中有一些小技巧,都不算很有技术含量,但在工作中运用这些技巧确实可以提高工作效率,这里把这些小技分享出来。

12320
来自专栏眯眯眼猫头鹰的小树杈

猫头鹰的深夜翻译:JDK Vs. JRE Vs. JVM之间的区别

JDK通常用来开发Java应用和插件。基本上可以认为是一个软件开发环境。JDK包含Java Runtime Environment(JRE),JRE包含加载器/...

9920
来自专栏颇忒脱的技术博客

使用Prometheus+Alertmanager告警JVM异常情况

在前一篇文章中提到了如何使用Prometheus+Grafana来监控JVM。本文介绍如何使用Prometheus+Alertmanager来对JVM的某些情况...

31930

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励