Java Review - 并发编程_前置知识二
【摘要】
文章目录
What's 多线程并发编程
What’s 多线程并发编程
首先要澄清并发和并行的概念
并发是指同一个时间段内多个任务同时都在执行,并且都没有执行结束并行是说在单位时间...
What’s 多线程并发编程
首先要澄清并发和并行的概念
- 并发是指同一个时间段内多个任务同时都在执行,并且都没有执行结束
- 并行是说在单位时间内多个任务同时在执行
并发任务强调在一个时间段内同时执行,而一个时间段由多个单位时间累积而成,所以说并发的多个任务在单位时间内不一定同时在执行。
在单CPU的时代多个任务都是并发执行的,这是因为单个CPU同时只能执行一个任务。在单CPU时代多任务是共享一个CPU的,当一个任务占用CPU运行时,其他任务就会被挂起,当占用CPU的任务时间片用完后,会把CPU让给其他任务来使用,所以在单CPU时代多线程编程是没有太大意义的,并且线程间频繁的上下文切换还会带来额外开销。
在单个CPU上运行两个线程,线程A和线程B是轮流使用CPU进行任务处理的,也就是在某个时间内单个CPU只执行一个线程上面的任务。当线程A的时间片用完后会进行线程上下文切换,也就是保存当前线程A的执行上下文,然后切换到线程B来占用CPU运行任务。
双CPU配置,线程A和线程B各自在自己的CPU上执行任务,实现了真正的并行运行。
文章来源: artisan.blog.csdn.net,作者:小小工匠,版权归原作者所有,如需转载,请联系作者。
原文链接:artisan.blog.csdn.net/article/details/121505186
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)