Java并发编程—并发和并行、线程上下文
创始人
2024-03-16 02:05:35
0

文章目录

    • 并发和并行
        • 并发和并行的区别
    • 上下文切换
    • 相关问题
        • 为什么循环次数少的情况下,单线程快?
        • 什么时候需要用多线程?
        • 线程上下文切换消耗的时长?
        • 用什么测试的线程上下文?面试回答下面的工具会加分:
        • 如何减少上下文切换?
        • 减少上下文切换实战
        • 如何打印(查看)线程信息?

——————————————————————————

并发和并行

  • 并发是多线程竞争同一个资源。
  • 并行是指多线程运行,没有资源的竞争。
    注:什么叫做资源?
    ——>变量、方法等都叫资源,占了内存的都叫资源,总之,资源就是变量

并发和并行的区别

  • 并发有资源竞争,并行没有资源竞争
  • 并发是指多线程对同一个变量进行读写操作【多线程对相同资源进行竞争】
  • 并行是进行不同变量的操作,没有相同变量的竞争

上下文切换

  • 是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现
  • 以CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的
  • 大部分线程,cpu执行完就销毁,cpu就让出来了,有的线程执行完就销毁,有的线程一直执行
  • 不同的操作系统分配的时间片是不同的(linux操作系统分配时间片是等长的20ms,windows操作系统分配时间片是不等长的几ms~几十ms)
  • 有的线程寿命很短,有的线程执行时间特别长,对于寿命特别长的线程,cpu也得切换到下一个线程执行,只是给这个线程不断分配时间片。
  • cpu在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。任务从保存到再加载的过程就是一次上下文切换。
  • 线程上下文: 线程上下文需要记录上次执行的位置和切换,切换是有消耗的
  • 多线程在切换的时候有性能损耗和时间损耗

相关问题

为什么循环次数少的情况下,单线程快?

因为循环次数少的话,启动其他核去执行任务,本身线程是进入就绪态让cpu去选,选的时候也需要消耗时间;单线程时,数量少的话瞬间就能执行完毕;多线程时,有切换的时间消耗。
循环次数多的时候,一般是多线程快,不过并不意味着线程多就一定快

什么时候需要用多线程?

cpu产生浪费的时候使用多线程,才会让性能得到提升;
像操作系统同时运行qq,微信等多个线程是为了体验好,开多个线程后性能是会变慢的

线程上下文切换消耗的时长?

线程上下文切换消耗的时长——将近1ms一次——达到毫秒级别,消耗很大

用什么测试的线程上下文?面试回答下面的工具会加分:

  • 使用Lmbench3可以测量上下文切换的时长。
  • 使用vmstat可以测量上下文切换的次数。

如何减少上下文切换?

减少上下文切换的方法有无锁并发编程、CAS算法、使用最少线程和使用协程。
协程: 在单线程里实现多任务的调度,并在单线程里维持多个任务间的切换。

减少上下文切换实战

命令:
sudo -u admin切换管理员权限
注:dump线程信息:显示这一瞬间的线程信息;dump不知存在于线程中,在其他地方也有,比如数据库等,时记录一瞬间状态的

如何打印(查看)线程信息?

jstack命令
在这里插入图片描述注:命令的意思:
sudo -u admin:切换到管理员权限
在 /opt/ifev/java/bin/ :在这个文件夹下面
执行jstack指令
传递3117这个参数查询3117这个进程
保存到/home/tengfei.fangtf/dump17这个文件里面
grep指令
grep:筛选,经常用来查询内容
在这里插入图片描述
——>统计,排序,按照一定格式输出
JBOSS:类似于tomcat,放网站进行运行

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...