Linux编程学习之线程篇-线程和进程的区别
来源:互联网 发布:刻图章软件 编辑:程序博客网 时间:2024/06/05 06:30
我们创建进程一次只能做一件事,如果想要同时做几件事,我们就得创建多进程,但是多进程之间的相互沟通是比较麻烦的,比如内存共享,描述符共享,互斥与同步等等而且在效率上也不如线程快捷。
在有了多线程以后,我们就可以在同一个进程中做多件事情。
进程又被认为是执行中的程序;
而线程是轻量级的进程
线程的资源:
一个进程中的大部分信息对该进程的所有线程都是共享的;
l 可执行程序的代码;
l 程序的全局内存;
l 堆内存;
l 栈;
l 文件描述符;
当然线程还有一些自己独享的资源:
l 线程ID;(pthread_t此数据类型用一个结构来实现)
l 线程自己的寄存器值;
l 线程运行栈;
l 调度优先级和调度策略;
l 信号屏蔽字;
l Errno变量;
l 线程私有数据;
线程与进程的区别:
当一个进程被创建时,自动就有一个线程在运行,该线程就是主线程(main函数运行的那个线程),我们可以在主线程中调用pthread_create函数来创建一个线程,也可以在其他线程调用线程创建函数。
实际上,真正的程序执行体是进程中的线程!
所以可以理解为,进程是一种空间上的概念,它为所有的执行体(线程)提供必要的资源(文件,文件描述符,运行代码等),而线程是时间上的概念,他类似于动态的指令执行过程。
可以把进程理解为一个提供了环境和资源的工厂,而真正干活的就是工厂中的工人(线程)。阅读全文
0 0
- Linux编程学习之线程篇-线程和进程的区别
- Linux编程之进程和线程编程
- VC++学习之进程和线程的区别
- java学习初探十八之线程和进程的区别
- linux内核学习之进程和线程
- linux内核学习之进程和线程
- linux内核学习之进程和线程
- linux内核学习之进程和线程
- linux学习之进程,线程和程序
- linux内核学习之进程和线程
- linux下进程和线程的区别
- linux 下 进程和线程的区别
- 进程和线程的区别(Linux)
- linux 下 进程和线程的区别
- linux 下 进程和线程的区别
- linux下进程和线程的区别
- linux 下 进程和线程的区别
- Linux中线程和进程的区别
- Android
- USACO Healthy Holsteins 健康的好斯坦奶牛
- Java面向对象的三大特征:封装、继承和多态的详解
- 当样式中存在!important时无法使用show()或hide()
- 如何根据前序遍历序列和中序遍历序列确定二叉树
- Linux编程学习之线程篇-线程和进程的区别
- ROS编程示例---加法客户端
- Together项目IOS平台开发10
- 给11gR2 RAC添加LISTENER监听器并静态注册
- 从尾到头打印链表
- Matlab函数bwmorph、bwperim
- JavaScript之事件
- ROS编程示例---加法服务端
- java 内存分配策略