【JavaEE】多线程(二)

一、认识线程(Thread)

1.1 概念

  1. 线程是什么
    一个线程就是一个 “执行流”. 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 “同时” 执行
    着多份代码.
    还是回到我们之前的银行的例子中。之前我们主要描述的是个人业务,即一个人完全处理自己的
    业务。我们进一步设想如下场景:
    一家公司要去银行办理业务,既要进行财务转账,又要进行福利发放,还得进行缴社保。
    如果只有张三一个会计就会忙不过来,耗费的时间特别长。为了让业务更快的办理好,张三又找
    来两位同事李四、王五一起来帮助他,三个人分别负责一个事情,分别申请一个号码进行排队,
    自此就有了三个执行流共同完成任务,但本质上他们都是为了办理一家公司的业务。
    此时,我们就把这种情况称为多线程,将一个大任务分解成不同小任务,交给不同执行流就分别
    排队执行。其中李四、王五都是张三叫来的,所以张三一般被称为主线程(Main Thread)。
  2. 为啥要有线程
    首先, “并发编程” 成为 “刚需”.
    单核 CPU 的发展遇到了瓶颈. 要想提高算力, 就需要多核 CPU. 而并发编程能更充分利用多核 CPU
    资源.
    有些任务场景需要 “等待 IO”, 为了让等待 IO 的时间能够去做一些其他的工作, 也需要用到并发编
    程.
    其次, 虽然多进程也能实现 并发编程, 但是线程比进程更轻量.
    创建线程比创建进程更快.
    销毁线程比销毁进程更快.
    调度线程比调度进程更快.
    最后, 线程虽然比进程轻量, 但是人们还不满足, 于是又有了 “线程池”(ThreadPool) 和 “协程”
    (Coroutine)
  • 20
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值