最近在看《深入解析Windows操作系统》和研究Java的JVM机制,觉得有些概念看起来简单,但是温故而知新,勤总结和归纳,对自己的知识体系的搭建大有裨益。此文引用了网上的一些博文和正在看的书中的一些段落。
【一】
进程和线程的一个形象的类比
在pengpenglin的博文中
【原】多线程编程的基础知识点
中对进程和线程的关系作了一个很好的比喻:
下面我以一个日常生活中简单的例子来说明进程和线程之间的区别和联系:
这副图是一个双向多车道的道路图,假如我们把整条道路看成是一个“进程”的话,那么图中由白色虚线分隔开来的各个车道就是进程中的各个“线程”了。
①这些线程(车道)共享了进程(道路)的公共资源(土地资源)。
②这些线程(车道)必须依赖于进程(道路),也就是说,线程不能脱离于进程而存在(就像离开了道路,车道也就没有意义了)。
③这些线程(车道)之间可以并发执行(各个车道你走你的,我走我的),也可以互相同步(某些车道在交通灯亮时禁止继续前行或转弯,必须等待其它车道的车辆通行完毕)。
④这些线程(车道)之间依靠代码逻辑(交通灯)来控制运行,一旦代码逻辑控制有误(死锁,多个线程同时竞争唯一资源),那么线程将陷入混乱,无序之中。
⑤这些线程(车道)之间谁先运行是未知的,只有在线程刚好被分配到CPU时间片(交通灯变化)的那一刻才能知道
【二】
什么是进程和线程?
在《深入解析Windows操作系统》第四版中提到:
"尽管表面上看起来程序和进程十分类似,但本质上它们却是截然不同的。程序
时指一个静态的指令序列
,而进程
则是一个容器
,其中包含了执行一个程序的特定实例时所用到得各种各样资源。"
举个例子,一个Windows进程包含哪些元素呢?从最高层次的抽象来看:
- 一个私有的虚拟地址空间
,这是指该进程可以使用的一组虚拟内存地址
- 一个可执行的程序,它定义了初始的代码和数据,并且被映射到该进程的虚拟地址空间中。
- 一个已打开句柄的列表,这些句柄指向各种系统资源,比如信号量,通信端口和文件,该进程内所有线程都可以访问这些资源。
- 一个被称为访问令牌
的安全环境,它标识了与该进程相关联的用户,安全组和特权。
- 一个被称为进程ID
的唯一标识符。
-
至少一个
执行线程。
一个标准Windows 进程(32位)的内存分配结构如下图, 摘自《Windows Java Address Space
》:
一个标准Java进程(32位)的内存分配结构如下图, 摘自《Windows Java Address Space
》:
一个完整Java进程分配的时候如下内容:
- Java VM
- Application byte code
- Native heap space
- Java heap space
- JIT'd code space
- Link Libraries
所以通过这个图我们就可以很清楚的明白,为啥你虽然有3.25G内存,减去2G os space,理论上一个java进程的Java Heap的Xmx可以设置成最大1.25G,但是实际上会报错:"Could not reserve enough space for object heap",原因就在于那剩下的1.25G不单单要被java heap瓜分,还要被Java VM进程的native heap,link libraries等等所占用。
【三】
(进程/线程)死锁 饥饿 饿死
死锁
:两个或两个以上进程等待对方释放资源。形成死锁最直观的现象就是出现等待环。
一个很形象的比喻:
两个山羊过一个独木桥都走到桥中央,一个山羊等另一个山羊过去然后再过桥,另一个山羊等这个山羊过去才准备过去。结果两人都堵在中间无法动弹了。
饥饿:
饿死:
分享到:
相关推荐
描述中提到的"一年多的软件开发经验"意味着这份资料可能涵盖了实战案例和经验分享,这对于学习者来说是非常宝贵的。实践中遇到的问题和解决方案,往往能提供更深入的理解,比如事务处理、并发控制、备份与恢复策略、...
通过对最新人教版小学语文古诗词和日积月累全汇总(1-6年级)的分析,我们可以总结出以下几个重要的知识点: 一、古诗词的基本知识 * 古诗词是中国古典文学的重要组成部分,具有深远的文化和历史价值。 * 古诗词...
5. 十二生肖和节气知识:文档介绍了十二生肖的概念,以及二十四节气歌,使学生了解中国传统的纪年方式和四季气候变化的规律。 6. 文化常识:文档提及了“文房四宝”(笔墨纸砚)、“雅人四好”(琴棋书画)、“花中...
一年级语文(上)古诗及日积月累.pdf
标题中的“一年级下”和“日积月累”指的是一年级下学期的学习内容,这些内容被分门别类地编排在不同的“语文园地”中,每个园地都包含了一定数量的词汇,这些词汇符合小学一年级学生的认知水平,并且旨在帮助他们...
日积月累部分通常包含了一些常见的成语、谚语或格言,这些都是汉语中富含智慧的短语。通过学习和运用这些短语,孩子们能够提高语言的运用能力,同时也能吸收传统文化的精华。例如,“三人行,必有我师”教导孩子们...
综上所述,这份试卷的知识点覆盖了小学语文教学的多个方面,不仅有助于检测学生的学习成果,更是在某种程度上培养学生的审美情感和文化素养。通过这样的专项训练,学生可以在日积月累中提高语文能力,从而在期末考试...
很抱歉,根据您提供的文件标题和描述,这似乎与IT行业知识无关,而是关于小学语文教育的内容。"统编语文四(下)《必背课文、古诗、日积月累》默写填空"是一个小学四年级下学期的语文学习资料,主要涉及的是学生需要...
三年级语文下册古诗文及日积月累(原文、注释、译文).pdf
这些试题涵盖了阅读理解、文学常识、语言表达、逻辑思维、诗词积累、情境理解等多个方面,全面检验了一年级学生的基础语文能力和综合素质。通过这样的测试,可以帮助教师了解学生的学习状况,为后续的教学提供依据,...
文档标题和描述中的“每天进步一小步日积月累跨大步”是一个激励性的语句,它强调了持续学习和进步的重要性。在IT行业中,这种理念尤为重要,因为这个领域发展迅速,新知识和技术层出不穷。以下将围绕这个主题展开,...
在小学语文教学中,“课文背诵”是一种常见的教学方法,它要求学生通过反复朗读和背诵课文,来加深对课文内容的理解和记忆,同时也能够训练学生的语言表达能力和记忆力。这种方法有助于学生掌握标准的汉语拼音、词汇...
这篇资料涵盖了多个知识领域,主要涉及中国传统文化、诗歌、成语以及...总的来说,这份资料提供了丰富的语文学习素材,涵盖了诗歌、成语、对联和名言等多个方面,有助于学生对中国传统文化和语言艺术有更深入的理解。
部编版三年级下古诗与日积月累归纳.doc
小学所有古诗和日积月累.doc
这篇资料主要包含的是小学三年级下册语文学习的内容,聚焦于日积月累的名言警句、谚语以及古诗的学习。以下是对这些知识点的详细解释: 1. 弗兰克的名言:“如果你是懦夫,你就是你自己最大的敌人;但如果你是勇者...
2019年新部编版语文六年级上册古诗词古文日积月累阅读链接翻译赏析.doc
部编版五年级语文上册分类专项复习:日积月累及运用练习(含答案).docx
3. 日积月累:本资源中的日积月累部分收录了多个常见的谚语、成语和格言,旨在培养学生的语言能力和文化素养。 Key Points: * 本资源涵盖了部编版三年级下册课文的必背内容。 * 课文部分旨在培养学生的语言能力和...
人教版一年级下册语文日积月累+按课文内容填空(重点).pdf