Java--进程和线程基本概念

下一篇--线程的创建和启动

进程:

进程是处于运行中的程序,是系统进行资源分配的调度的独立单位。

进程特点:

  • 独立性:进程是系统中独立存在的实体,它可以拥有自己独立的资源,每个进程都有自己私有的地址空间。
  • 动态性:进程和程序的区别就是进程是正在系统中活动的指令集合。
  • 并发性:多个进程可在单个处理器上并发进行,进程之间不会相互影响。

线程:

线程是进程的组成部分,一个进程可以有多个线程,一个线程必须有一个父进程。线程使得同一个进程可一并发处理多个任务。线程可以拥有自己的程序计数器、自己的堆栈和自己的局部变量,但不拥有系统资源,它与进程中的其他线程共享进程所拥有的所有资源。线程是处理器调度的基本单位。

线程特点:

  • 线程可与其他线程共享进程中的共享变量和部分环境,相互之间协作来完成进程的任务。
  • 线程是独立运行的,它并不知道系统中还有其他线程存在。
  • 线程的执行是抢占式的。
  • 线程的调度和管理由进程本身负责,操作系统不参与。

总结:操作系统可以同时执行多个任务,每个任务就是进程;进程可以同时执行多个任务,每个任务就是线程。

线程相对于进程的优势:

  • 进程之间不能共享内存,但线程之间共享内存非常容易。
  • 系统创建一个进程必须分配独立的内存空间和相关资源,但创建线程代价要小得多,因此多线程实现多任务效率更高。
  • Java语言内置了多线程功能支持,简化了Java的多线程编程。

并发和并行的区别:并行是指在同一时刻,有多条指令在多个处理器上运行;并发是在同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。

下一篇--线程的创建和启动

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张尧博客

Ubuntu软件常用升级命令

4856
来自专栏mathor

Linux——目录、文件处理命令(上)

992
来自专栏阿杜的世界

【译】Linux概念架构的理解摘要一、Linux内核在整个计算机系统中的位置二、内核的作用三、Linux内核的整体架构四、高度模块化设计的系统,利于分工合作。五、系统中的数据结构六、子系统架构七、结论

声明:本文翻译自Conceptual Architecture of the Linux Kernel

1134
来自专栏拭心的安卓进阶之路

git 对比两个分支差异

比如我们有 2 个分支:master, dev,现在想查看这两个 branch 的区别,有以下几种方式: 1.查看 dev 有,而 master 中没有的: g...

4678
来自专栏FreeBuf

OFFICE OLE2LINK(CVE-2017-0199)漏洞利用详解

漏洞概述 FireEye最近公布了一个OFFICE 0day,在无需用户交互的情况下,打开word文档就可以通过hta脚本执行任意代码。经过研究发现,此漏洞的...

2409
来自专栏性能与架构

Linux lsof 命令的实用案例

lsof 简介 lsof(list open files)是一个列出当前系统中所有打开文件的工具 Linux中一切皆文件,所以在系统中,被打开的文件可以是普...

6848
来自专栏Java后端技术

原来实现项目多环境打包部署是如此的简单

   在软件开发和部署过程中,我们的软件往往需要在不同的运行环境中运行,例如:开发人员本地开发环境、测试团队的测试环境、生产仿真环境、正式生产环境,不同的公司可...

1073
来自专栏青玉伏案

OracleDBA之用户管理

再分享一下Oracle中对用户的管理,以下这些东西是我的麦库上存的当时学Oracle的学习笔记今天拿出来和大家分享一下,转载请注明出处,下面用的Oracle的...

2007
来自专栏小樱的经验随笔

把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败 在python3中调用会成功,但是调用不能成功的解决方案

把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败 在python3中调用会成功,但是调用不能成功 解决办法是: 在该文件夹下加入空文件_...

2965
来自专栏技术博文

关于inodes占用100%的问题及解决方法

系统:Centos;一般的Linux系统也可以用这种方法。 情况描述:今天session文件写入时,写入不了,而且连接到服务器上开启服务都开不了,起始以为磁盘空...

3669

扫码关注云+社区

领取腾讯云代金券