一、进程:计算机分配资源的基本单位-独立的内存空间;比如QQ
二、线程:计算机执行任务调度的基本单位
- 通常进程由一堆线程组成
- 线程没有独立的内存空间,数据是共享的,所以存在高并发的数据一致性问题
三、纤程:在线程的基础上,又衍生出了纤程,因为现代CPU已经发展到一定程度,实际上一个线程执行一定的逻辑的时候显得有些资源过剩
- 可以将纤程理解为进行拆分出来的更细的执行单位,可以结合线程池这样的概念来理解
- 适用场景:执行时间短的操作,执行时间短是一个相对概念,比如CPU性能特别强大,可能使得纤程的执行效率非常高
轻量趋势
进程(重)->线程(普通)->纤程(轻)
数据一致性问题
- 多个进程之间由于内存独立,所以不存在这个问题
- 多个线程之间由于数据是共享的,所以其实需要处理数据一致性问题,需要线程的时候需要切换上下文
JVM线程-可能依赖操作系统的线程,而纤程完全在用户空间(JVM在用户空间,线程可能导致需要从用户态切换到内核态)
原文地址:https://www.cnblogs.com/gabin/p/13748377.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。