`
wenshao
  • 浏览: 271291 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

新写了一个Java并发程序设计教程

阅读更多
新写了一个Java并发程序设计教程, 用于公司内部培训的,和2007年写的那个相比,内容更翔实一些。

内容列表

1、使用线程的经验:设置名称、响应中断、使用ThreadLocal
2、Executor :ExecutorService和Future ☆ ☆ ☆
3、阻塞队列 : put和take、offer和poll、drainTo
4、线程间的协调手段:lock、condition、wait、notify、notifyAll ☆ ☆ ☆
5、Lock-free: atomic、concurrentMap.putIfAbsent、CopyOnWriteArrayList ☆ ☆ ☆
6、关于锁使用的经验介绍
7、并发流程控制手段:CountDownlatch、Barrier
8、定时器: ScheduledExecutorService、大规模定时器TimerWheel
9、并发三大定律:Amdahl、Gustafson、Sun-Ni
10、神人和图书
11、业界发展情况: GPGPU、OpenCL
12、复习题

下载地址:
http://files.cnblogs.com/jobs/Java%e5%b9%b6%e5%8f%91%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1%e6%95%99%e7%a8%8b.pdf 

JavaEye下载地址:
http://dl.iteye.com/topics/download/9b2e8e75-ed5f-3f6a-b5df-c725e928dbd8

欢迎看了之后写反馈给我。
博客园的文章地址:

http://www.cnblogs.com/jobs/archive/2010/07/29/1788156.html
分享到:
评论
14 楼 DarrenD 2016-08-16  
不错 并发很基础的介绍
13 楼 denvelope 2013-10-22  
denvelope 写道
lsk 写道
hi,楼主. 我发现了一个错误(应该是笔误)
class BlockingQ{
private Object notEmpty= newObject();
private Queue<Object> linkedList= new LinkedList<Object>();
public Object take() throwsInterruptedException{
synchronized(notEmpty) {
if(linkedList.size() == 0) {
notEmpty.wait();
}
return linkedList.poll();
}
}
public void offer(Object object) {
synchronized(notEmpty) {
if(linkedList.size() == 0) {
notEmpty.notifyAll();
}
linkedList.add(object);
}
}
}


offer 方法当中的 if(linkedList.size()==0) 应该是 linkedList.size()!=0  ....



size()==0是正确的
博主的错误在于先进先出队列,不应该用linkedList.poll(),应改为pollLast(),否则是一个栈操作


是我搞错了,唉,add()是加在队列末尾的
12 楼 denvelope 2013-10-21  
lsk 写道
hi,楼主. 我发现了一个错误(应该是笔误)
class BlockingQ{
private Object notEmpty= newObject();
private Queue<Object> linkedList= new LinkedList<Object>();
public Object take() throwsInterruptedException{
synchronized(notEmpty) {
if(linkedList.size() == 0) {
notEmpty.wait();
}
return linkedList.poll();
}
}
public void offer(Object object) {
synchronized(notEmpty) {
if(linkedList.size() == 0) {
notEmpty.notifyAll();
}
linkedList.add(object);
}
}
}


offer 方法当中的 if(linkedList.size()==0) 应该是 linkedList.size()!=0  ....



size()==0是正确的
博主的错误在于先进先出队列,不应该用linkedList.poll(),应改为pollLast(),否则是一个栈操作
11 楼 lsk 2011-07-28  
hi,楼主. 我发现了一个错误(应该是笔误)
class BlockingQ{
private Object notEmpty= newObject();
private Queue<Object> linkedList= new LinkedList<Object>();
public Object take() throwsInterruptedException{
synchronized(notEmpty) {
if(linkedList.size() == 0) {
notEmpty.wait();
}
return linkedList.poll();
}
}
public void offer(Object object) {
synchronized(notEmpty) {
if(linkedList.size() == 0) {
notEmpty.notifyAll();
}
linkedList.add(object);
}
}
}


offer 方法当中的 if(linkedList.size()==0) 应该是 linkedList.size()!=0  ....
10 楼 xiuzhi 2011-02-18  
喜欢lz的文档风格,期待更多东西
9 楼 wenshao 2011-01-15  
_bulrush 写道
_bulrush 写道
楼主,您好~
能给告诉下Synchronization Algorithms and Concurrent Programming的下载地址么?
或者发到我邮箱里,多谢~

_bulrush 写道
楼主,您好~
能给告诉下Synchronization Algorithms and Concurrent Programming的下载地址么?
或者发到我邮箱里,多谢~

我的邮箱luwei@yinzhijie.com

我是托朋友美国买的,没有下载
8 楼 _bulrush 2011-01-14  
_bulrush 写道
楼主,您好~
能给告诉下Synchronization Algorithms and Concurrent Programming的下载地址么?
或者发到我邮箱里,多谢~

_bulrush 写道
楼主,您好~
能给告诉下Synchronization Algorithms and Concurrent Programming的下载地址么?
或者发到我邮箱里,多谢~

我的邮箱luwei@yinzhijie.com
7 楼 _bulrush 2011-01-14  
楼主,您好~
能给告诉下Synchronization Algorithms and Concurrent Programming的下载地址么?
或者发到我邮箱里,多谢~
6 楼 moshalanye 2010-12-31  
文档能力很强啊,浏览了下,后面的感觉比较眩。

感觉CAS讲的比较少,多核cached同步mesi协议貌似没讲。
5 楼 zgzdzh 2010-12-29  
很给力。。。阿里果然牛人多。。。
4 楼 vb2005xu 2010-12-23  
这个写的很不错 很棒
3 楼 sohuexe 2010-12-23  
弯弯古德!
2 楼 sagahl 2010-09-30  
温少,你的课非常精彩!
1 楼 javastyle 2010-07-31  
膜拜大侠,从bluedavy那下载过你的PPT,写的非常棒.... Thanks

相关推荐

    ( Java并发程序设计教程.zip )高清版 PDF

    《Java并发程序设计教程》是一本深入探讨Java平台上的并发编程技术的专业书籍。并发和多线程是现代软件开发中的核心概念,特别是在Java这样的多线程支持强大的编程语言中。这本书详细介绍了如何在Java环境中有效地...

    Java并发程序设计教程

    总之,Java并发程序设计是一门深奥且实用的技术,涉及到线程管理、同步机制、并发工具和内存模型等多个方面。通过学习本教程,开发者可以掌握在Java环境中编写高效、可靠的并发程序所需的技能。

    Java并发程序设计教程.pdf

    《Java并发程序设计教程》是一份详尽的指南,旨在帮助开发者掌握Java中的并发编程技巧。这份教程由温绍锦(昵称:温少)编写,涵盖了从基础到高级的各种并发概念和技术,对于希望深入理解并应用Java多线程机制的开发...

    Java并发程序设计教程.rar

    总的来说,这个Java并发程序设计教程涵盖了从基础到高级的并发编程知识,不仅教授了如何在Java环境中创建和管理线程,还强调了并发控制和性能优化。通过学习这个教程,开发者将能够编写出更加高效、安全的并发程序,...

    Java语言程序设计教程 张席

    《Java语言程序设计教程》是张席编著的一本针对初学者和进阶者的学习资料,这本书深入浅出地介绍了Java编程语言的核心概念和技术。Java作为一种广泛应用的编程语言,其强大的跨平台能力和丰富的类库使其在软件开发...

    阿里Java并发程序设计教程

    标题《阿里Java并发程序设计教程》揭示了这是一份面向Java开发者的教程,专注于介绍Java中的并发编程技术。该教程将Java并发编程的核心概念进行了系统性的讲解,涵盖了从基础到高级的多个方面。而描述部分列举了教程...

    雍俊海 Java程序设计教程 课后答案

    雍俊海的《Java程序设计教程》是一本深受读者欢迎的教材,其第二版更加深入浅出地讲解了Java的核心概念和技术。课后答案部分则是帮助学生检验学习效果,理解并巩固所学知识的关键资源。 在Java编程中,我们首先需要...

    java语言程序设计教程

    Java语言程序设计教程是针对初学者和有一定经验的开发者提供的一份全面的教育资源,它涵盖了Java编程的基础到高级概念。Java是一种多平台、面向对象的编程语言,由Sun Microsystems(后被Oracle收购)于1995年发布,...

    java语言程序设计教程.rar

    总的来说,这个Java语言程序设计教程涵盖了从基础知识到高级特性的全方位学习路径,无论你是编程新手还是希望提升Java技能的专业人士,都能从中受益。配合提供的资源,如"爱书吧.txt"可能包含的相关阅读资料,"教程...

    Java并发程序设计+并发

    Java并发程序设计是Java开发中的重要领域,它涉及到如何在多线程环境下高效、安全地执行代码。在Java中,并发编程主要通过类库、工具和技术来实现,这些包括线程、锁、同步机制以及并发容器等。下面将详细介绍Java...

Global site tag (gtag.js) - Google Analytics