开发者社区> steven.cao> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Java 并发/多线程教程(一)

简介:          本系列译自jakob jenkov的Java并发多线程教程,个人觉得很有收获。由于个人水平有限,不对之处还望矫正!         在早期,计算机只有一个CPU,同一时刻只能执行一个程序,后来有了多任务的说法,多任务是指计算机在同一时刻可以执行多个程序,但这并不是真正意义上的同一时刻,单个CPU 被多个程序共用,操作系统会在运行的运行的程序间相互切换。
+关注继续查看

         本系列译自jakob jenkov的Java并发多线程教程,个人觉得很有收获。由于个人水平有限,不对之处还望矫正!

        在早期,计算机只有一个CPU,同一时刻只能执行一个程序,后来有了多任务的说法,多任务是指计算机在同一时刻可以执行多个程序,但这并不是真正意义上的同一时刻,单个CPU 被多个程序共用,操作系统会在运行的运行的程序间相互切换。在相互切换之前会短暂的执行其中的一个。

      随着多任务的产生,给程序开发人员带来了新的挑战。程序不能再假定拥有所有的CPU 时间,不能再假定它拥有所有的内存空间和计算机的其他资源。一段好的程序应该释放掉不再使用的资源,以至于其他程序能够使用这些资源。再此之后又出现了多线程,这意味着在同一程序中可以有多个线程执行,一个线程的执行可以认为一个CPU在执行这段程序,当有多个线程执行时可被视作多个CPU 在执行这个程序。

     多线程被视作可以提升程序性能的一种很好的方式,但是相对于多任务,多线程带来了更多的挑战。同一个程序内部多个线程同一时刻执行,这就意味着他们同时读写内存,这样就会出现在单线程下不会产生的错误,而这些错误不会出现在单CPU 的计算机上,因为在单CPU 的计算机上,同一时刻,多个线程并不是真的都在执行,现代计算机有多核,甚至于有些计算机拥有多CPU,这就意味着不同的线程可以同时被不同的核或是不同的CPU 执行。

1240
图片发自简书App

如果一个线程从内存区域读一个值的时候,另一个线程正在向内存区域写这个值的时候,那么读的线程最终会读到什么结果呢?原来的值?还是被另一个线程修改后的值呢?如果没有合适的保证措施,这些值都是有可能读到的。这种行为不可预知,结果可能随时都在变。因此,作为一个程序员,对正确对结果的预测是非常重要的!这就意味着程序员要学会怎么去控制线程对诸如内存、文件、数据库等这些共享资源的访问。

Java中的多线程和并发

  Java 是让程序员很容易实现多线程的语言之一。java 自从开始之初就有多线程的能力,因此java 开发人员经常面对上面所说的问题。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java多线程与并发框(完结篇)——再看不懂我找不到女朋友
Java多线程与并发框(完结篇)——再看不懂我找不到女朋友
0 0
【Java原理探索】「并发原理专题」AQS的技术体系之CLH、MCS锁的原理及实现
【Java原理探索】「并发原理专题」AQS的技术体系之CLH、MCS锁的原理及实现
0 0
拦截应用 error日志并发送到钉钉群|Java 开发实战
现在应用都需要对日志进行监控或者报警,现在普遍的做法是采用EKL收集日志,然后再由Grafana进行内容展示和及告警策略等,那如果项目架构比较简单(单体应用),又不想搞那么多中间件依赖怎么办,这里有一种简单的方式可以实现~
0 0
JAVA文档并发演示---并发高级对象摘录(Tutorial - Concurrency Lesson--High Level Concurrency Objects)
JAVA文档并发演示---并发高级对象摘录(Tutorial - Concurrency Lesson--High Level Concurrency Objects)
0 0
【Java并发】ReadWriteLock读写锁的使用
【Java并发】ReadWriteLock读写锁的使用
0 0
【Java并发】父类能调用子类的方法吗?
【Java并发】父类能调用子类的方法吗?
0 0
深刻理解JAVA并发中的有序性问题和解决之道
深刻理解JAVA并发中的有序性问题和解决之道
0 0
深入浅出理解Java并发AQS的共享锁模式
深入浅出理解Java并发AQS的共享锁模式
0 0
+关注
steven.cao
java,数据库,框架相关专家
文章
问答
文章排行榜
最热
最新
相关电子书
更多
JAVA 应用排查全景图
立即下载
Java工程师必读手册
立即下载
Java应用提速(速度与激情)
立即下载