栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

多线程(一) 认识线程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

多线程(一) 认识线程

多线程

线程

线程的特点线程的介绍同一个进程的多个线程之间的共享资源主要是两方面使用的原因线程是如何创建的

线程和代码有啥关联? 进程和线程的区别和练习(面试题)一个进程中线程并不是越多越好

一个进程最多能搞多少线程呢? 多线程程序还是有问题的

线程

如果把一个进程想象成一个工厂
线程就是工厂中的若干流水线

线程的特点

线程是包含在进程中的一个进程中可能有多个线程每个线程都有一段自己要执行的逻辑(指令),每个线程都是独立的"执行流"同一个进程中的很多线程之间,是共享了一些资源 线程的介绍

所谓的 “线程” 可以理解成是一种轻量级的 “进程” ,也是一种实现并发编程的方式创建一个线程比创建一个进程的成本低,销毁一个线程比销毁一个进程的成本也低成本低的原因是,新创建一个线程,并没有去申请资源,销毁线程也不需要释放资源,让线程在进程内部公用之前的资源如果新创建一个进程,就需要给这个进程分配比较多的资源实际进行并发编程的时候,多线程比多进程方式更加常见,效率也更高 同一个进程的多个线程之间的共享资源主要是两方面

    内存资源(但是两个不同进程之间的内存不能共享)打开的文件

但是也有不共享资源

    上下文 / 状态 / 记账信息 / 优先级(每个线程要独立参加CPU的调度)内存中有一块特殊的区域, 栈 空间上每个线程要独立一份
使用的原因
    线程比进程轻量,并发编程的效率更高线程之间共享的资源多,完成一些操作时更方便
线程是如何创建的

当创建一个进程的时候,就会自动随之创建一个线程(主线程)
一个进程被创建出来的时候,至少会随之创建一个线程

进程是操作系统分配资源的最小单位
线程是操作系统进行调度和执行的最小单位

所谓操作系统对进程调度,本质上就是操作系统针对这个进程的若干个线程进行调度

一个线程是一个PCB
一个进程是多个PCB (使用线程组 id 来表示哪些PCB 从属与同一个进程)

线程和代码有啥关联?

可以认为,一个线程就是代码中的一个执行流 (按照一定的顺序来执行一组指令)

进程和线程的区别和练习(面试题)
    进程是包含线程的一个进程里可以有一个线程,也可以有多个线程进程和线程都是为了处理并发编程这样的场景,但是进程在频繁创建和释放时效率低,相比之下,线程更加轻量,创建和释放效率更高(因为少了申请释放资源的过程)进程是操作系统资源分配的基本单位,线程是操作系统调度执行的基本单位 (以PCB为单位进行调度)每个进程都有独立的内存空间,每个进程有各自的虚拟空间,一个进程挂了,不会影响到其他进程,同一个进程的多个线程之间,共用这个虚拟地址空间,所以一个线程挂了,可能会影响到其他线程的,甚至导致整个进程崩溃
一个进程中线程并不是越多越好

并发能力达到上限了,继续增加线程不会再提高效率,反而会降低效率(线程的调度也是有开销的)

一个进程最多能搞多少线程呢?

    CPU的个数相关

    和线程执行的任务类型也相关

1.CPU密集型 : 程序一直在执行计算任务
2.IO 密集型 : 程序没咋进行计算,主要进行输入输出操作

多线程程序还是有问题的
    “线程不安全”线程如果抛出异常,没有很好地的处理这个异常的话,整个进程会被直接终止,其他线程也没法继续工作
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785587.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号