前言: Java并发是一个涵盖Java平台上的多线程、并发和并行性的术语。这包括Java并发工具、问题和解决方案。本Java并发教程
Java并发是一个涵盖Java平台上的多线程、并发和并行性的术语。这包括Java并发工具、问题和解决方案。本Java并发教程涵盖了与Java中的多线程相关的多线程、并发构造、并发问题、成本和收益的核心概念。
Java并发教程视频
如果您喜欢看视频,小编这里到是有全套的Java视频教程,其中涵盖了本教程系列涵盖的一些相同主题。您可以在此处找到视频播放列表:
IT培训网全套Java学习视频免费下载
什么是多线程?
多线程意味着您在同一个应用程序中有多个执行线程。线程就像执行应用程序的独立CPU。因此,多线程应用程序就像具有多个CPU同时执行代码的不同部分的应用程序。
但是,线程不等于CPU。通常单个CPU将在多个线程之间共享其执行时间,在给定时间内执行每个线程之间切换。也可以让应用程序的线程由不同的CPU执行。
为什么是多线程?
关于为什么要在应用程序中使用多线程有几个原因。多线程的一些最常见原因是:
我将在以下各节中更详细地解释这些原因。
1.更好地利用单个CPU
最常见的原因之一是能够更好地利用计算机中的资源。例如,如果一个线程正在等待对通过网络发送的请求的响应,那么另一个线程可以同时使用CPU来做其他事情。此外,如果计算机有多个CPU,或者CPU有多个执行内核,那么多线程还可以帮助您的应用程序利用这些额外的CPU内核。
2.更好地利用多个CPU或CPU内核
如果计算机包含多个CPU或CPU包含多个执行核心,那么您需要使用多个线程让您的应用程序能够利用所有CPU或CPU核心。单个线程最多只能使用单个CPU,而且正如我上面提到的,有时甚至不能完全使用单个CPU。
3.在响应性方面更好的用户体验
使用多线程的另一个原因是提供更好的用户体验。例如,如果您单击GUI中的按钮并导致通过网络发送请求,那么执行此请求的线程很重要。如果您使用也更新GUI的同一线程,那么当GUI线程等待请求的响应时,用户可能会遇到GUI“挂起”。相反,这样的请求可以由后台线程执行,因此GUI线程在此期间可以自由地响应其他用户请求。
4.在公平性方面更好的用户体验
第四个原因是在用户之间更公平地共享计算机资源。例如,假设一台服务器接收来自客户端的请求,并且只有一个线程来执行这些请求。如果一个客户端发送一个需要很长时间来处理的请求,那么所有其他客户端的请求都必须等到一个请求完成。通过让每个客户端的请求由其自己的线程执行,那么没有单个任务可以完全独占CPU。
5.多线程与多任务
在过去,计算机只有一个CPU,一次只能执行一个程序。大多数小型计算机的功能并不足以同时执行多个程序,因此没有尝试过。公平地说,与个人计算机相比,许多大型机系统能够一次执行多个程序多年。
6.多任务处理
后来出现了多任务处理,这意味着计算机可以同时执行多个程序(AKA任务或进程)。不过,这并不是真正的“同时”。单个CPU在程序之间共享。操作系统会在运行的程序之间切换,在切换之前执行它们中的每一个。
随着多任务处理,软件开发人员面临新的挑战。程序不能再假定所有可用的CPU时间、所有内存或任何其他计算机资源都可用。一个“好公民”程序应该释放它不再使用的所有资源,以便其他程序可以使用它们。
7.多线程
后来出现了多线程,这意味着您可以在同一个程序中拥有多个执行线程。执行线程可以被认为是执行程序的CPU。当您有多个线程执行同一个程序时,就像在同一个程序中执行多个CPU一样。
8.多线程很难
多线程是提高某些类型程序性能的好方法。然而,多线程比多任务更具挑战性。线程在同一个程序中执行,因此同时读取和写入相同的内存。这可能导致在单线程程序中看不到的错误。其中一些错误在单CPU机器上可能看不到,因为两个线程从未真正“同时”执行。但是,现代计算机配备了多核CPU,甚至还配备了多个CPU。这意味着不同的线程可以同时由不同的内核或CPU执行。
如果一个线程读取一个内存位置而另一个线程写入它,那么第一个线程最终会读取什么值?旧值?第二个线程写入的值?还是两者混合的价值?或者,如果两个线程同时写入同一个内存位置,完成后会留下什么值?第一个线程写入的值?第二个线程写入的值?还是两个值的混合写入?
如果没有适当的预防措施,任何这些结果都是可能的。这种行为甚至无法预测。结果可能会不时改变。因此,作为开发人员,了解如何采取正确的预防措施非常重要——这意味着学习控制线程如何访问共享资源,如内存、文件、数据库等。
以上就是IT培训网小编介绍的"Java并发的系统学习视频,一天即可掌握",希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为您服务。
Java学习 Java视频教程文章出自:http://qh.itpxw.cn/peixun/software/2022121393.html
文章标题:Java并发的系统学习视频,一天即可掌握
免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员
用户级别:10
机构名称:IT培训网
联 系 人:罗老师
联系电话:13783581536
联系手机:13783581536
在线客服:
在 线 QQ:
电子邮件:
网站域名:http://www.itpxw.cn
注册时间:2016-07-18 11:07
最后登录:2024-02-20 13:02
Java定义方法的格式是什么?IT培训网小编来告诉大家。所谓方法...
大家在Java教程中会学到关于Java消息推送的知识,那么,Java消息...
常用的Java日期格式转换有哪些?IT培训网小编来告诉大家。 1...
Java创建对象数组的方法是什么?IT培训网小编来告诉大家。Ja...