LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

Linux下的多线程进程有独立的地址空间(同一)

2023年2月13日 471点热度

进程是程序执行时的一个实例,即它是程序早已执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。

线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有好多相对独立的执行流的用户程序共享应用程序的大部份数据结构),线程与同属一个进程的其他的线程共享进程所拥有的全部资源。

"进程——资源分配的最小单位,线程——程序执行的最小单位"

进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程形成影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程没有单独的地址空间,一个线程挂掉就等于整个进程跑掉,所以多进程的程序要比多线程的程序强壮,但在进程切换时,花费资源较大,效率要差一些。但对于一些要求同时进行而且又要共享个别变量的并发操作,只能用线程,不能用进程。

总的来说就是:进程有独立的地址空间,线程没有单独的地址空间(同一进程内的线程共享进程的地址空间)。(下边的内容摘自Linux下的多线程编程)

linux 进程 线程_linux 线程 进程_linux线程和进程的区别

使用多线程的理由之一是和进程相比,它是一种十分"俭朴"的多任务操作方法。我们晓得,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,完善诸多的数据表来维护它的代码段、堆栈段和数据段,这是一种"高昂"的多任务工作方法。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部份数据,启动一个线程所耗费的空间远远大于启动一个进程所耗费的空间,但是kali linux,线程间彼此切换所需的时间也远远大于进程间切换所须要的时间。据统计,总的说来,一个进程的开支大概是一个线程开支的30倍左右,其实,在具体的系统上,这个数据可能会有较大的区别。

使用多线程的理由之二是线程间便捷的通讯机制。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通讯的形式进行,这些方法除了费时,但是很不便捷。线程则不然,因为同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其它线程所用,这除了快捷,但是便捷。其实,数据的共享也带来其他一些问题,有的变量不能同时被两个线程所更改,有的子程序中申明为static的数据更有可能给多线程程序带来灾难性的严打,那些正是编撰多线程程序时最须要注意的地方。

不仅以上所说的优点外,不和进程比较,多线程程序作为一种多任务、并发的工作方法,其实有以下的优点:

=============================

从函数调用上来说,进程创建使用fork()操作;线程创建使用clone()操作。RichardStevens大师这样说过:

Threadshelpwithbothproblems.Threadsaresometimescalledlightweightprocessessinceathreadis"lighterweight"thanaprocess.Thatis,threadcreationcanbe10–100timesfasterthanprocesscreation.

Allthreadswithinaprocesssharethesameglobalmemory.Thismakesthesharingofinformationeasybetweenthethreads,butalongwiththissimplicitycomestheproblem

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

linux 线程 进程_linux线程和进程的区别_linux 进程 线程

线程是指进程内的一个执行单元,也是进程内的可调度实体linux内存管理,与进程的区别:

(1)地址空间:进程内的一个执行单元;进程起码有一个线程,它们共享进程的地址空间;而进程有自己独立的地址空间;

(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源

(3)线程是处理器调度的基本单位,但进程不是.

(4)两者均可并发执行.

进程和线程都是由操作系统所感受的程序运行的基本单元,系统借助该基本单元实现系统对应用的并发性。进程和线程的区别在于:

1.简而言之,一个程序起码有一个进程,一个进程起码有一个线程.线程的界定尺度大于进程,促使多线程程序的并发性高。

2.另外,进程在执行过程中拥有独立的显存单元linux线程和进程的区别,而多个线程共享显存linux线程和进程的区别,因而极大地提升了程序的运行效率。

linux 线程 进程_linux 进程 线程_linux线程和进程的区别

3.线程在执行过程中与进程还是有区别的。每位独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。并且线程不能否独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

4.从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部份可以同时执行。但操作系统并没有将多个线程看做空个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

5.进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.

6.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),并且它可与同属一个进程的其他的线程共享进程所拥有的全部资源.

7.一个线程可以创建和撤消另一个线程;同一个进程中的多个线程之间可以并发执行。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: linux系统 多线程 线程
最后更新:2023年2月13日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
VMware过期Linux系统CentOS7下载安装1.77下载地址 红旗linux操作系统v11.0-红旗操作系统操作系统吗? 5yw红软基地驱动完美支持windows、mac、linux系统 轻松安装ZeroMQ:Ubuntu系统必备的解决方案 怎么在Win7系统虚拟机上安装LinuxUbuntu的技巧?在这里 Linux必备!安装RAR解压器,轻松解压文件! 虚拟机linux系统下载 什么是linuxLinux(/托瓦兹)的Linux内核 文件永久删除还能找回来吗?关于Win和Mac系统的恢复方法 Ubuntu16.04怎样安装系统更新和应用更新16.04 网卡 centos 启动 Linux选择选择时各企业所参考的依据:以下内容和Centos Linux内核内存检测工具系列中的一篇,配置以及典型应用 虚拟机安装Ubuntu操作系统-Ubuntu空间20G镜像下载 0渗透操作0x02绕过disable_functions插件(组图) 【好玩的网络-第2.5期】分配IP有哪些骚操作?小白保姆级教程 Windows远程连接工具、Ubuntu系统的安装软件及系统 Linux一模一样远程连接编辑的操作图是什么? DRAM中的虚拟地址空间的缓存简化内存管理(组图) 2.5创建和配置虚拟机2.5.1创建虚拟机双击桌面的VMwarePlayer 掌握Linux基础命令-上海怡健医学系统 服务器上安装linux系统的具体操作过程-如何选择系统?
Linux文件路径查询方法,轻松获取文件位置Linux移植6410:从零开始的挑战!linux php安装 快速掌握Linux下PHP安装,轻松入门流行技术linux patch 文件 解决LinuxPatch文件10大疑难杂症,轻松应对!Ubuntu系统更改IP地址的简易教程,跟随以下步骤即可搞定!高效搭建Linux Android开发环境,轻松提升开发体验轻松掌握:如何查询Linux内核版本?Linux安装Matlab指南,快速掌握安装步骤Ubuntu 16安装网卡驱动教程,轻松解决网络连接问题Linux启动时,不使用图形界面可能更有效率!移植Linux,手机变身“大杀器”!详解8大关键操作Linux更高效,掌握启动终端快捷键!纯Python库实现上面介绍的HTML转换为PDF的软件Fedora 13服务器配置指南:9个实用技巧全解析9种方法轻松获取Linux版本,快速掌握系统信息!博客韦东山freeRTOS系列教程:入门文档教程+进阶视频教程轻松掌握linux ldd命令的技巧,成为高效开发者与管理员Linux VPS安全检测,保障服务器稳定运行!Linux下高效开发必备:配置Tomcat和JDK分析Linux中的I2C驱动程序框架核心结构(i2c-bus结构)
img创建一个cronjob要创建,你可以使用crontab命令 (Linux基础知识)Linux察看版本信息的信息三 掌握Linux基础命令-上海怡健医学系统 100款软件分类图,我只能说一句你OUT了 VMwareUbuntuserver系统安装教程系统镜像下载地址—> web应用漏洞/心脏滴血8069zabbix服务远程命令执行/注入8161activemq弱口令 数字媒体信息发布系统,尚观发布软件是一款专业的 Linux用户来说意味着什么?简单来说,实际上意味着即白 再传到linux2.配置数据库的环境和路径3.登陆数据库修改 centos系统版本详细信息解决方案与操作系统版本兼容的重要性分析 解密Unix时间戳转换技巧,轻松读懂日期奥秘 图解linuxlinux内核结构框图对内核框图有个总体的把握 linuxVPS计划任务crond命令的使用方法分享,需要的朋友可以参考下 快速解决Java服务线上CPU问题,掌握排查思路! linux内核api 深入探索Linux内核API,你真的了解吗? Linux云主机无法SSH远程登录,上午还用得挺好 绪论:100小时定律已成,现今将之前所学知识温顾 关机/重启命令有shutdown、halt、reboot、及init Linux七种运行级别(0-6)预置的启动流程 计算机操作系统全新版装系统盘点、理念与系统的优缺点
标签聚合
sudo linux服务器 命令 文件目录 命令模式 linux脚本 软件 电脑 linux系统 虚拟机
书籍
课程
技术群
技术干货大合集↓
  • 2023年3月 / 112篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.