浅谈线程基础

文章目录

一些基础信息

线程是什么?
一种运行进程的基本单位,还会占用计算机资源。

进程是什么?
一种运行程序的基本单位。

线程什么情况下会消耗资源?

  • 切换上下文时,当你从这个线程切换到另一个线程,这种行为会耗费资源。
  • 正常运行时,耗费的资源程度和代码逻辑有关系,简单的逻辑用一个线程运行就能免去切换线程上下文需要耗费的资源。
  • 挂起等待其他线程运行时(阻塞状态),这种情况耗费的资源很少,但你懂的,如果等待中的线程基数很大,耗费的资源就会很多,另外,等待的线程重新运行会导致上下文切换(这又要耗费资源)。

线程状态是怎么变化的?

首先创建线程,start()启动,此时进入Running状态,各个相同优先级线程会随机交替运行,从Running转到WaitSleepJoin状态进行等待,或转回Running状态进行运行,运行结束就会进入Stopped状态。

但现代计算机的cpu都是多核,所以一般会同时运行几个线程,但即使如此也可能有状态间的变换,而不是直接Running到Stopped。

线程状态可以通过**Thread对象.ThreadState.ToString()**获得。

硬件环境会影响多线程程序吗?

单核cpu的机器每次只能运行一个线程,只能并发运行线程,所以效率会低。
多核的cpu可以并行运行线程,效率就会高些。
多个单核cpu也可以并行运行线程但开销很大。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值