多线程编程下的优势和存在的风险

目录

1. 多线程(multithreading)的相关概念:

2. 多线程编程下具有的的优势:

3. 多线程编程下存在的风险???


c7c10e9ed9844af9b4e321b76d2e640d.gif 什么是多线程???? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA546L5L2z5Lyf4pmq,size_8,color_FFFFFF,t_70,g_se,x_16

1. 多线程(multithreading)的相关概念:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA546L5L2z5Lyf4pmq,size_8,color_FFFFFF,t_70,g_se,x_16   在上篇中我们提到了 进程和线程的概念 ,在这里,多个线程的通俗的来说就

                              是在一个操作系统上多个软件(进程)同时工作。

😁😁😁😁😁😁😁😁😁😁😁

  • 是指从软件或者硬件上实现多个线程并发执行的技术。
  • 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。
  • 具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。
  • 在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”  。

d347c7a7c0eb46feb385decfba3474f7.png

2. 多线程编程下具有的的优势:

0a244466eb2c42ef9ea056435844ac85.gif

  • 第一 : 可提高系统的吞吐量(Throughout)
    •  多线程编程可以使得一个进程有多个并发的(concurrent,即同时进行的)操作。

        943b8ba63eb84d23a462b1643441b1a2.gif

  • 第二: 提高响应性(Responsivess)
    • WEB 服务器会采用一些专门的线程负责用户请求处理,缩短了用户等待的时间。

     d1341138516d4aafb32c078cb3b696c2.gif

  • 第三:充分利用多核(Multicore)处理器资源
    • 通过多线程可以充分利用 CPU 资源。

  abe337c91de746d185f0f3a0119ac1bd.gif  总的来说:多线程编程的好处就是提高了程序的运行效率。

3. 多线程编程下存在的风险???

  • 第一:线程安全问题(Thread safe):
    • 多线程共享数据,如果不采取正确的访问措施,就可能产生一些数据的一致性问题,如读取脏数据(过期的数据),丢失数据更新。

                6a577ec514e04f4db27dad13d4ef2b3b.png

  • 第二:线程活性问题(Thread Liveness):
    • 由于程序自身的缺陷或者由资源稀缺一直导致线程处于 非 RUNNABLE状态,这就是线程活性问题,常见的活性故障有以下几种:
      • 死锁(Deadlock):类似于橘蚌相争(总是条件不满足,互斥)
        • 比喻双方相持不下,而使第三者从中得利。
      • 锁死(LockOut):类似于睡美人故事中的王子挂了。
        • 睡美人只有在王子的亲吻下才能醒来。
      • 活锁(Livelock):类似于小猫咬住了自己的尾巴。
      • 饥饿(Starvation):类似于健壮的雏鸟,总是从母鸟嘴中抢到食物(弱小的最终会被饿死)

                        b2bd5d74dd474f3d874c35bbde1e40f6.png

  • 第三:上下文切换(Context Switch):
    • ​​​​​​​处理器从执行上一个线程切换到执行另一个线程。
  • 可靠性:
    • 可能会由一个线程导致 JVM 意外终止,其它线程也无法执行。

感谢阅读,希望对你有帮助~~~

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA546L5L2z5Lyf4pmq,size_8,color_FFFFFF,t_70,g_se,x_16

  • 28
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你困了吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值