多线程编程(二)--进程&&线程
来源:互联网 发布:淘宝达人怎么发帖子 编辑:程序博客网 时间:2024/05/20 17:08
http://blog.csdn.net/liutengteng130/article/details/46662817
看完上篇博文的介绍后,大家应该大概了解进程和线程的由来。有了这样一个背景我们进一步来看一下线程和进程。
引入进程:
进程可以提高系统的并发性,提高CPU的使用率,从而提高程序的性能。在以前单道操作系统中,一次只执行一个程序,这样执行效率很低,资源得不到充分的利用。所以后来多道操作系统出现了,由于多道操作系统一次并发执行很多程序,但管理起来非常麻烦。因此进程的概念就被提出来了,它是一个程序动态执行表现,而且进程中包含了程序的资源,并管理程序如何去使用资源。可以说进程是程序的一种动态表现形式。
引入线程:
进程与进程之间的通信是十分慢的,因为进程管理分配很多资源,所以转换起来很慢。就这样,线程产生了,它是比进程更小的单位,一个进程中只要有一个或多个线程,那么每个线程之间的通信相对进程而言则快了很多,因为线程只涉及到CPU的资源分配。一个进程中的线程是可以相互通信的,但不同进程之间的线程是不能相互通信的。
进程
是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。进程至少有5中基本状态:初始态,执行态,等待状态,就绪状态,终止状态。
线程
线程是进程的一部分,一个没有线程的进程可以看做是单线程的。线程有时又被称为轻权进程或者是轻量级进程,也是CPU调度的一个基本单位。
多线程
它允许在程序中并发执行多个指令流,每个指令流都称为一个线程。多线程进制下的线程彼此间互相独立,比较容易共享数据,通过兵法执行的方式来提高程序的效率和性能。
线程VS进程
1、线程的划分尺度小于进程,线程隶属于某个进程。
2、进程是程序的一种动态形式,是CPU、内存等资源占用的基本单位,而线程是不能独立的占有这些资源的。
3、进程之间相互独立,通信比较困难,而线程之间共享一块内存区域,通信比较方便。
4、进程在执行过程中,包含比较固定的入口、执行顺序和出口,而线程的这些过程会被应用程序所控制。
- 多线程编程(二)--进程&&线程
- 多线程编程(二)--进程&&线程
- 多线程编程(二)--进程&&线程
- python学习笔记(4)-进程和线程(二)-多线程
- posix多线程有感--线程高级编程(进程的优先级)
- 多线程编程(一)--进程和线程之由来
- 多线程编程(一)--进程和线程之由来
- 多线程编程(一)--进程和线程之由来
- 多线程编程之进程与线程关系
- 多线程编程复习笔记 进程与线程
- c++11多线程编程-进程与线程
- linux/unix多线程/多进程编程总结(二)
- iOS多线程编程指南(二)线程管理
- iOS多线程编程指南(二)线程管理
- iOS多线程编程指南(二)线程管理
- iOS多线程编程指南(二)线程管理
- iOS多线程编程指南(二)线程管理
- iOS多线程编程指南(二)线程管理
- Android Studio 快捷键整理
- MySQL分页查询(limit用法)
- [ant自动化]xmltask使用案例
- 来自微软的一封学习网站的信-【关于MSDN的使用教程】
- opencv实战,钢板焊接点寻找4,求助
- 多线程编程(二)--进程&&线程
- JS 日期对象
- 数据库连接池C3P0学习
- 通俗易懂谈上拉电阻与下拉电阻
- hdu1348 Wall(凸包模板题)
- 高并发场景系列(一) 利用redis实现分布式事务锁,解决高并发环境下减库存
- PCA与KPCA
- Arcgis4js实现链家找房的效果
- Hibernate入门(五)hibernate的级联(cascade)表操作