2019-07-31 C#基础知识学习
2024-09-05 09:35:25
什么是进程:进程是系统中正在运行的一个程序,程序一旦运行就是进程。
什么是线程:线程是进程的一个实体,是进程的一条执行路径。
进程和线程的区别体现在以下几个方面:
1.地址空间和其他资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其他进程内不可见。
2.通信:进程间通信IPC(管道,信号量,共享内存,消息队列),线程间可以直接独写进程数据段(如全局变量)来进程通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
3.调度和切换:线程上下文切换比进程上下文切换快得多。
4.在多线程OS中,进程不是一个可执行的实体。
进程和线程的选择取决以下几点:
1.需要频繁创建销毁的优先使用线程;因为对进程来说创建和销毁一个进程的代价是很大的。
2.线程的切换速度快,所以在需要大量计算,切换频繁时使用线程,还有耗时的操作时用使用线程可提高应用程序的响应。
3.因为对CPU系统的效率使用上线程更占优势,所以可能要发展到多机分布的用进程,多核分布用线程。
4.并行操作时用线程,如C/S架构的服务器端并发线程响应用户的请求。
5.需要更稳定安全时,适合选择进程;需要速度时,选择线程更好。
最新文章
- Python-面向对象(类)一
- Mac 显示隐藏文件
- 谈谈我的编程之路---WAMP(四)
- 《CheckboxDemo.java》
- js原生appendChild的bug
- MYSQL查询表结构
- 如何知道 win10 的激活到期时间和期限等
- 持续集成:TestNG组织如何测试用例
- UVALive3882-And Then There Was One-约瑟夫问题-递推
- Django—跨域请求(jsonp)
- javascript高级程序设计第3版——第8章 BOM(浏览器对象模型)
- 获取jdk支持的编码类型
- Python3入门(六)——函数式编程
- 【内核】linux内核启动流程详细分析
- Linux下Nginx+多Tocat下的负载均衡环境的简单搭建
- picture control控件
- jQuery用FormData对象实现文件上传以及如何通过ajax下载文件
- unity3d GameCenter的使用
- SonarQube install on Kubernetes
- solr java api 使用solrj操作zookeeper集群中的solrCloud中的数据
热门文章
- PHP大文件分片上传
- 并发编程入门(三): 使用C++11实现无锁stack(lock-free stack)
- 2017.9.23 NOIP2017 金秋杯系列模拟赛 day1 T1
- 【luoguP1991】 无线通讯网--最小生成树
- Android项目实战登录&注册
- P4779 【模板】单源最短路径(标准版)题解
- 删除线性表中为x的元素的三种简单算法。
- springboot+shiro 跨域解决(OPTIONS)
- [MyBatis]向MySql数据库插入一千万条数据 批量插入用时6分 之前时隐时现的异常不见了
- Java之加密算法