1. 《java多线程编程核心技术》和《java并发编程的艺术》两本书的异同
区别很大:
《java多线程编程核心技术》:
这本书让你入个门,整体上了介绍一些并发编程的基本API、常见场景和一些坑,推荐先看这本书,比较简单,适合新手,但是原理不够深入
和《java并发编程的艺术》
这本书从底层和实现原理开始讲起,深入java内存模型和处理器的知识讲解并发编程的实现原理,适合有一定基础的人看
2. 《Java并发编程实战》pdf下载在线阅读,求百度网盘云资源
《Java并发编程实战》(Brian Goetz)电子书网盘下载免费在线阅读
链接:https://pan..com/s/1LkHQ1LOcgxHjCxplxfhmSg提取码:1234
书名:Java并发编程实战
作者:Brian Goetz
译者:童云兰
豆瓣评分:9.0
出版社:机械工业出版社华章公司
出版年份:2012-2
页数:293
内容简介:
本书深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。
本书适合Java程序开发人员阅读。
作者简介:
本书作者都是Java Community Process JSR 166专家组(并发工具)的主要成员,并在其他很多JCP专家组里任职。Brian Goetz有20多年的软件咨询行业经验,并着有至少75篇关于Java开发的文章。Tim Peierls是“现代多处理器”的典范,他在BoxPop.biz、唱片艺术和戏剧表演方面也颇有研究。Joseph Bowbeer是一个Java ME专家,他对并发编程的兴趣始于Apollo计算机时代。David Holmes是《The Java Programming Language》一书的合着者,任职于Sun公司。Joshua Bloch是Google公司的首席Java架构师,《Effective Java》一书的作者,并参与着作了《Java Puzzlers》。Doug Lea是《Concurrent Programming》一书的作者,纽约州立大学 Oswego分校的计算机科学教授。
3. JAVA并发编程实战怎么样
我不想再继续吐槽翻译,的确有些话理解起来有些费劲,但就内容而言,这本书当吃无愧堪称JAVA并发领域的一朵明珠,光芒万丈的指引着并发这条路。(如果你有能力就读英文版的,既然要吐槽中文版,还是就事论事的好) 前年的时候看过一边,当时觉得读这本书的时候用个新的成语来形容就是——不明觉厉。 近两年各种并发开始流行,其实也流行了几十年了,可以负责任的说网上你能看到的几乎所有中文关于JAVA并发的理解和解读几乎都可以在这本书上找到。 个人感觉还是应该上来介绍JMM的,这样至少能提起很大兴趣。此书的翻译堪称晦涩难懂,如果不是硬着头皮读下来,尝试去理解,这真不是水平的问题,真难以想象花了10几个小时愣是把这本书再次读完了。 其实这本书读完后你最大的收获应该是能够去理解那些现今相当牛逼的JAVA领域的并发库和框架了,当然你的收获还有就是特别小心的使用锁,发布可见性,活跃性,性能和测试等等。 这本书包含的内容涉及之广、之深不能全部一下子消化完,例子非常具有代表性和针对性,值得你面对并发时再次读读这本书,如果接触的不多或者只是刚刚了解并发,也非常适合你对整个JAVA世界的并发领域有个认识,重读会有更进一步的理解,JAVA的并发真是令人瞠目结舌,无法形容,强大和灵活到一定地步了,当然这份强大是用庞大付出代价的。 个人感觉看完后,真是应该再把JDK里关于并发的库仔细读读。 虽然这本书是在讲JAVA的并发,但是如果有别的语言经验的同学也应该推荐读读,让你了解下JAVA世界的并发是如此的精彩和复杂诡异。 虽然不能完全记住书中的细节,但建好索引就足够了,待日后用时可以再次翻阅。
4. java并发编程问题
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class CachedFactorizer implements Servlet { //java 网络访问中的缓存编程
// @GuardedBy is an annotation introced by Brian Goetz in his excellent
// book on concurrency : Java Concurrency In Practice. The idea is that
// you indicate the lock that you need to hold before you access a particular
// member variable.
@GuardedBy("this") private BigInteger lastNumber;
//means you should synchronize on "this" before accessing lastNumber.
@GuardedBy("this") private BigInteger[] lastFactors;
//means you should synchronize on "this" before accessing lastFactors.
@GuardedBy("this") private long hits;
//means you should synchronize on "this" before accessing hits.
@GuardedBy("this") private long cacheHits;
//means you should synchronize on "this" before accessing cacheHits.
public synchronized long getHits() {
return hits;
}
public synchronized double getCacheHitRatio() {
return (double) cacheHits / (double) hits;
}
public void service(ServletRequest req, ServletResponse resp) {
BigInteger i = extractFromRequest(req);
BigInteger[] factors = null;
//访问前面提到的那些敏感数据之前,先call synchronized(this) 同步
synchronized(this) {
++hits; //hit 自动加1
if(i.equals(lastNumber)) { //如果i和lastNumber是相等的话
++cacheHits; //cacheHits 自动加1
factors = lastFactors.clone(); //factors更新数据用lastFactors
}
}
if(factors == null) { //如果factors是空的话。
factors = factor(i); //更新factors的数据
synchronized(this) { //访问前面提到的那些敏感数据之前,先call synchronized(this) 同步
lastNumber = i; //更新lastNumber
lastFactors = factors.clone(); //lastFactors 用factors来更新
}
}
encodeIntoResponse(resp, factors); //取得resp然后返回对应数据
}
}
5. java怎么实现并发编程
利用多线程就可以,处理好同步或异步的关系,异步的话,设置好回调,同步的话,syncronized一下
6. 如何学习Java“高并发”,并在项目中实际应用
如果不使用框架,纯原生Java编写,是需要了解Java并发编程的,主要就是学习Doug Lea开发的那个java.util.concurrent包下面的API;
如果使用框架,那么在代码层面确实不会需要太多的去关注并发问题,反而是由于高并发会给系统造成很大压力,要在缓存、数据库操作上要多加考虑。
即使是使用框架,在工作中还是会用到多线程,就拿常见的CRUD接口来说,比如一个非常耗时的save接口,有多耗时呢?我们假设整个save执行完要10分钟,所以,在save的时候,就需要采用异步的方式,也就是单独用一个线程去save,然后直接给前端返回200。
可见,就算只是简单的CRUD,也有可能用到多线程的。
当然,这只是一个简单的例子,要想学习Java的精髓,并发还是要学的;不管你只是业务开发,还是在开发框架。
7. 如何深入学习Java并发编程
Java如何学?我的经验告诉你
之前就听说Java很难学,自己亲身实践之后,感觉确实如此,想学好Java并非易事。以下三点是必须要做到的:1:课前认真预习;2:课上认真听讲;3:课后认真复习,勤练代码。只有做好这三点才能跟上老师的步伐。学习编程语言没有捷径可走,关键的一点就是坚持练习,只有每天保证一定的代码练习量,在遇到问题时才有一定的思路。
编程语言的学习是一个漫长的过程,欲速则不达,不能一步登天。在这个过程中需要慢慢积累经验,把基础打扎实。不要认为写出了一个简单的小程序,就觉得自己已经学的很好了,这只不过是编程学习过程中的一个小小实践。
学习Java,看书是必不可少的一项内容,但是我们在看书的时候,不要等到完全理解了才动手敲代码,而是应该在看书的同时敲代码,因为程序运行中的各种情况可以让你更快更牢固地掌握知识点。虽然学习中不要求英语非常好,但不能一点不会,最起码像JavaAPI简单的文档还是要能看懂的,另外建议再开启一个“金山词霸”,方便翻译,单词看多了就会越来越熟练,在学Java的同时还可以提高英文水平。对于新手学习java有困难不知道怎么去做的可以加扣:五七八接着再来不要断开零二四后面跟着再来一四四连在一起,进行大神的交流同时得到帮助,获取免费听课权限!!!
程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。当你学习一个类以后,你就可以自己写个简单的程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样可以非常直观地学习类的使用方法,而且记忆非常深刻。学开发不应该满足把代码调通,而是应该尝试换个方式写行不行。
有人说学习编程就是个破坏的过程,把书本上的例子,自己学习Documentation编写的例子在运行通过以后,不断地尝试着用不同的方法实现,不断地尝试破坏代码的结构,看看会有什么结果。通过这样的方式,你会非常熟练地掌握Java。
在学习Java这段时间,有时候会觉得有点苦,但是我觉得正是有了奋斗时的苦,才能换来学成后的甜。当你认真写代码做完一个项目时,你会有一种成就感,心里会有一种说不出的喜悦。学Java靠的是韧劲,靠的是拼劲,靠的是坚持不懈。如果做好了这几点,我想学习Java对你来说不会太难。还有,你自己要有信心,相信自己能学会,要学会激励自己,加油!
经验总结:
1.做任何事情都要专注:你不专注,别人能做到90%-100%,你只能处在最底层。
2.代码保持规范性,细致了解代码机制;
3.确保计算机基础知识的扎实性,提升自己分析问题和解决问题的能力;
4.多做实习,多和老师做项目;
5.勤记笔记,勤敲代码,勤问问题,勤积累,多做总结;
6.要不断建立自己的人脉圈,构建一个属于自己的小圈子——IT圈。
8. java并发编程看什么书比较好
弟发现一本很好的java书籍,不敢独享,在此与大家分享
Java并发编程—设计原则与模式(第二版),本书简介:
本书全面介绍了如何使用java 2平台进行并发编程,较上一版新增和扩展的内容包括:
·存储模型 ·取消 ·可移植的并行编程 ·实现并发控制的工具类
java平台提供了一套广泛而功能强大的api,工具和技术。内建支持线程是它的一个强大的功能。这一功能为使用java编程语言的程序员提供了解并发编程这一诱人但同时也非常具有挑战性的选择。
本书通过帮助读者理解有关并发编程的模式及其利弊,向读者展示了如何更精确地使用java平台的线程模型。
这里,读者将通过使用java.lang.thread类、synchronized和volatile关键字,以及wait、notify和 notifyall方法,学习如何初始化、控制和协调并发操作。此外,本书还提供了有关并发编程的全方位的详细内容,例如限制和同步、死锁和冲突、依赖于 状态的操作控制、异步消息传递和控制流、协作交互,以及如何创建基于web的服务和计算型服务。 本书的读者对象是那些希望掌握并发编程的中高级程序员。从设计模式的角度,本书提供了标准的设计技巧,以创建和实现用来解决一般性并发编程问题的组件。贯 串全书的大量示例代码详细地阐述了在讨论中所涉及到的并发编程理念的细微之处。