进程与线程的区别(面试题)

进程与线程的区别
1.进程是资源分配最小单位,线程是程序执行的最小单位;

2..进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段,线程没有独立的地址空间,它使用相同的地址空间共享数据;

3.CPU切换一个线程比切换进程花费小;

4.创建一个线程比进程开销小;

5.线程占用的资源要⽐进程少很多。

6.线程之间通信更方便,同一个进程下,线程共享全局变量,静态变量等数据,进程之间的通信需要以通信的方式(IPC)进行;(但多线程程序处理好同步与互斥是个难点)

7..多进程程序更安全,生命力更强,一个进程死掉不会对另一个进程造成影响(源于有独立的地址空间),多线程程序更不易维护,一个线程死掉,整个进程就死掉了(因为共享地址空间);

8.进程对资源保护要求高,开销大,效率相对较低,线程资源保护要求不高,但开销小,效率高,可频繁切换;
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/384515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查找表的原理与结构 什么是竞争与冒险现象?怎样判断?如何消除?

查找表的原理与结构: 查找表(look-up-table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有 4位地址线的16x1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以…

AD软件操作技巧

本文介绍一些关于AD软件的实用小操作,这些小技巧可以大大的减少我们的工作量 一.批量操作丝印(或者操作别的东西也可以,主要是凸显批量操作的思想) 如下图假设我们工程里有很多丝印和焊盘等等,现在我想改批量地修改丝…

冒泡排序算法,C语言冒泡排序算法详解

冒泡排序是最简单的排序方法,理解起来容易。虽然它的计算步骤比较多,不是最快的,但它是最基本的,初学者一定要掌握。 冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中…

白话经典算法系列之六 快速排序 快速搞定

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小…

c语言中判断一个字符串是否包含另一个字符串

1. 使用库函数 string.h strstr函数 函数名: strstr 功 能: 在串中查找指定字符串的第一次出现 用 法: char *strstr(char *str1, char *str2); 说明:返回指向第一次出现str2位置的指针,如果没找到则返回NULL。 调用函数,判断返回值是否等于NULL…

C语言截取从某位置开始指定长度子字符串方法

c语言标准库没有截取部分字符串的函数,为啥?因为用现有函数strncpy,很容易做到! char dest[4] {""}; char src[] {"123456789"}; strncpy(dest, src, 3); puts(dest); 输出结果为 123 看到了吗&#xff…

Modbus通讯协议详细解释

https://blog.csdn.net/rxiang12/article/details/79125813

V4L2框架分析

V4L2是Video for linux2的简称,为linux中关于视频设备的内核驱动。v4L2是针对uvc(USB Video Class)免驱usb设备的编程框架,主要用于采集usb摄像头等。 下图是V4L2的框架,首先系统核心层分配设置注册一个名为cdev结构体变量&#x…

Linux下IO多路复用之select函数的使用

select函数的作用: 如果我们的程序里有两个需要阻塞的地方,例如要从服务器读数据,同时还要从键盘上读数据(若不采用阻塞而用查询的方式则大量占用系统资源)。这个时候我们就有两处阻塞,你当然可以用多线程或…

条件变量实现线程同步

(1) 什么是条件变量实现线程同步?   假如我们的程序中有两个线程,一个是生产者线程,另一个是消费者线程,生产者线程每隔一段时间把数据写入到缓冲区buffer中,而消费者线程则每隔一段时间从buffer中取出数据,为了避免…

mjpg-streamer框架分析

mjpg-streamer程框架图如下所示: 程序运行起来后,主进程根据传入的参数设置的输入输出通道打开对应的输入输出动态链接库,并依次调用以下函数 1、输入---仓库-----输出(mjpg-streamer.h) (1)gl…

用strace工具跟踪系统调用

Linux下可以用strace工具查看应用程序的系统调用。 strace -h 查看能调用的参数 1.strace -o xwatv.log xwatv //-o xwatv.log 是指定将跟踪信息存放在xwatv.log中,xwatv是指要跟踪的命令或应用程序 2.把生成的log文件拷贝回windows下进行分析 主要分析open…

linux字符驱动之概念介绍

一、字符驱动框架 问:应用程序open、read、write如何找到驱动程序的open、read、write函数? 答:应用程序的open、read、write是在C库里面实现的,它里面通过swi val指令去触发一个异常,这个异常就会进入到内核空间,在内…

linux字符驱动之自动创建设备节点

上一节中,我们是手工创建设备节点,大家肯定也会觉得这样做太麻烦了。 上一节文章链接:https://blog.csdn.net/qq_37659294/article/details/104302700 问:能不能让系统自动创建设备节点? 答:可以&#x…

linux字符驱动之点亮LED

上一节中,我们讲解了如何自动创建设备节点,这一节我们在上一节的基础上,实现点亮LED。 上一节文章链接:https://blog.csdn.net/qq_37659294/article/details/104308284 驱动里面能够用很多种方法实现LED驱动,其中有本…

USB摄像头视频监控项目学习笔记

一个摄像头监控应用程序的系统调用如下所示: /* open * VIDIOC_QUERYCAP 确定它是否视频捕捉设备,支持哪种接口(streaming/read,write) * VIDIOC_ENUM_FMT 查询支持哪种格式 * VIDIOC_S_FMT 设置摄像头使用哪种格式 * VIDIOC_REQBUFS 申请buffer 对于 str…

图片缩放算法

项目背景:博主之前做过一个摄像头采集数据,然后在LCD上显示视频数据的项目,假如我们摄像头采集的一帧数据的分辨率比我们的LCD的分辨率要大,那么LCD则无法显示整个图像,这时候我们就要把这么一帧图片进行缩放&#xff…

数码相框项目之显示一张可放大、缩小、拖拽的图片

之前我做过一个电子相框的项目,涉及到的重难点主要为:在LCD上放大、缩小、移动图片。 首先我们得明白的一点是:无论是放大或缩小,实际上都是对原图进行等比例的缩小,然后在LCD上面显示,只不过缩小的程度不…

TCP协议-如何保证传输可靠性

TCP协议传输的特点主要就是面向字节流、传输可靠、面向连接。这篇博客,我们就重点讨论一下TCP协议如何确保传输的可靠性的。 确保传输可靠性的方式 TCP协议保证数据传输可靠性的方式主要有: 校验和序列号确认应答超时重传连接管理流量控制拥塞控制 校…

TCP协议-握手与挥手

认识TCP协议 TCP全称为“传输控制协议”,这是传输层的一个协议,对数据的传输进行一个详细的控制。 特点: 面向字节流安全可靠面向连接 TCP协议段格式 源端口号与目的端口号:这里与UDP的一样,每个数据都要知道从哪个…