多线程与单线程理解

多线程与单线程理解

进程与线程的关系

进程是计算机程序执行一次过程的接班单位,即正在执行的程序(QQ),一个应用程序可以包含多个进程(QQ的不同页面信息)
线程是进程的基本单元,一个进程至少包含一个线程,线程也是程序到CPU执行的通路,而进程则会为应用程序分配内存空间,在一个内存空间中进行处理,效率也会更高,如果是单线程,则电脑在处理一个应用程序中的多个指令时,会并发调用CPU(即每个时间片段分配给不同的线程,只是由于执行时间很短,切换时间也很短,因此没有察觉),线程属于进程,是程序执行的执行单元,而进程是一个应用程序,内部含有多条线程指令。
在这里插入图片描述

多线程与单线程

多线程与单线程在单核CPU或者多核CPU中均可以进行执行,只是单核CPU中多线程是一种假的多线程,他也可以独立同时处理多条指令,只是不像多核cpu那样,会对多条指令并行处理,单核CPU通过并发的形式,对多线程进行处理。
而多核CPU才能真正发挥多线程的作用。

线程调度

分时调度

所有线程轮流使用CPU,平均分配每个线程的CPU占用时间

抢占式调度

可以通过对线程的优先级进行设置,分配不同线程抢夺CPU的优先级

多线程的优点

1.对于单核CPU而言,由于采用多线程的方式,CPU会采用并发的方式进行处理指令,而这种方式相比于单线程会更加耗时(由于CPU在不同线程之间的切换会有时间的损耗)。
2.多线程可以提高应用程序的响应,使得多条指令可以更好地执行,特别是对图像化界面,内部含有多种图形化原件(多种指令集),因此可以增强用户体验
3.对于多线程,可以提高计算机系统的利用率,现服务器基本都为多核CPU
4.可以改善程序的结构,例如,JAVA程序的运行,会分为主线程,垃圾回收机制,异常处理,通过多线程的方式使得每个部分独立运行,有助于程序的更改和理解
5.多线程可以分别设置优先级以优化性能。

多线程的缺点

1.由于多线程分为多个指令处理,因此复杂度会增加
2.每个线程都需要分配自身的栈,栈就是包含变量值和其他执行信息的存储区。除了栈之外,线程还要使用其他系统资源,但不同JVM中所用的资源数量和类型也各不相同。虽然有时需要创建大量的线程,但所用平台可能会限制创建线程的数量。即使所有平台没有显式限制所能创建的线程数量,但一般根据处理器速度和系统可用内存也会有所限制。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值