今天看到一篇文章,和我看《Thinking in java》时的笔记很相似,便转过来了,作为《Thinking in java》并发这一块的总结
转自:http://wangyang0311.iteye.com/blog/707894
1:实现Runnable接口并编写run()方法
2:Thread.yield()的含义是对线程调度器的一种建议,通常是切换线程
3:ExecutorService是具有生命周期的Executor,CachedThreadPool为每个任务创建一个线程,而FixedThreadPool使用了有限的线程集来执行任务,SingleThreadExecutor是数量为1的FixedThreadPool
4:Callable接口能在任务完成时返回一个值
5:Executor的submit()方法会产生Future对象,isDone()检查该对象是否完成,get()获取结果
6:Thread可以用setPriority()方法调整优先级,有MAX_PRIORITY,NORM_PRIORITY,MIN_PRIORITY
7:在启动之前调用线程的setDaemon(true)方法可以将其设置为后台线程,isDaemon()方法确定线程是否是后台线程,任何后台线程创建的线程都是后台线程
8:某线程在另一个线程t上调用t.join(),则此线程将被挂起,直到目标线程t结束才恢复,即t.isAlive()返回为假,或者在join()上带一个超时参数
9:使用并发时,将域设为private非常重要,因为synchronized关键字不能防止其他任务直接访问域
10:Brain同步规则:如果你正在写一个变量,它可能接下来将被另一个线程读取,或者正在读取一个上一次已经被另一个线程写过的变量,那么你必须使用同步,并且读写线程都必须用相同的监视器锁同步
11:Lock对象相比synchronized缺乏优雅但更加灵活,ReentranLock允许尝试获取但最终未获取锁,以便决定是否执行其他任务
12:宁愿使用同步控制块而不是对整个方法进行同步控制,使得其他线程能更多的访问
13:ThreadLocal对象为每个单独线程分配自己的存储,不会出现竞争条件
14:新的concurrent类库避免对Thread对象的直接操作,尽量通过Executor来执行所有操作,由submit()返回的Future对象,调用cancel(true)方法可以终端由Executor启动的单个线程
15:能中断sleep()的调用,不能中断I/O操作或synchronized锁
16:无论何时,只要任务以不可中断的方式被阻塞,都有潜在锁住程序的可能,而ReentranLock上阻塞的任务具有可以被中断的能力,这与用synchronized阻塞任务完全不同
17:调用notifyAll()比调用notify()更安全,反之则是一种优化
18:同步队列是比wait()和notifyAll()高级的协作,java.util.BlockingQueue接口提供了该队列,可以使用LinkedBlockingQueue(无界)或者ArrayBlockingQueue(固定大小),同步队列在任何时刻只允许一个任务插入或移除元素
19:CyclicBarrier适用于这样的情况:你希望创建一组任务,它们并行地执行工作,然后在进行下一个步骤前等待,直至所有任务完成(有点像join),非常像CountDownLatch,只是后者是触发一次的事件,而CyclicBarrier可以多次重用。(赛马游戏)
20:DelayQueue,有序无界BlockingQueue,到期才能取走对象;PriorityBlockingQueue,优先级队列
21:ScheduledThreadPoolExecutor设置计划的运行时间
22:Semaphore允许n个任务同时访问资源
23:Exchanger使得两个对象互换栅栏
24:ReadWriteLock对不频繁写入,频繁读出情况进行优化
25:原子类:AtomicInteger,AtomicLong,AtomicReference
26:免锁容器:ConcurrentHashMap,CopyOnWriteArrayList
分享到:
相关推荐
Java高并发相关知识点包括: 线程:Java多线程的实现方式,包括继承Thread类和实现Runnable接口。 锁:Java中的锁机制,包括synchronized关键字和ReentrantLock类。 线程池:Java中的线程池机制,包括线程池的创建...
高并发相关实践
JAVA并发编程 核心方法与框架 ,高洪岩著;Java并发编程:设计原则与模式(第二版);Java并发编程实战(中文版);Java多线程编程核心技术_完整版;Java多线程编程实战指南 设计模式篇
资源名称:Java多线程并发相关资料汇总 资源目录: 【】JavaConcurrencyinPractice 【】JavaThreads(3rdEdition) 【】JAVA多线程并发 【】Java多线程并发访问解决方案 【】java多...
java面试多线程高并发相关回家技巧(超经典),对你的面试绝对有用,请放心学习
并发相关知识点思维导图整理,适合java开发人员
多线程与并发相关文档.zip
JAVA面试_多线程,高并发相关14个问题.pdf
学会高并发处理思路与手段,让跳槽面试...无论面试还是实际开发,几乎都会涉及并发相关知识及高并发相关场景处理,如果你想系统的学习一下并发编程 并了解一下实际的高并发场景及应对方案,那这门课就是为你准备的。
该压缩包里含有两本pdf书籍:effictive java第二版和java并发实战,希望能对大家提升技术有所帮助。
本文档主要系统性的总结和阐述了与Java并发相关的知识点
本书主要讲解了一些高并发相关的信息,值得读一读的。。。。
内容 包括一些详细解说的文本 还有例子 包括pdf文件 都可以看
高并发相关认识,大型网站高并发架构的了解实现,怎么去优化系统架构
书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高...
和并发有关的概念,线程,内存模型,锁的优化,jdk并发包,nio,aio等等
第1章主要介绍了并行计算中相关的 些基本概念, 树立读者对并行计算的基本认识;介绍了两个重要的并行性能评估定律, 以及 Java 内存模型 JMM。第2章介绍了 Java 并行程序开发的基础, 包括 Java 中 Thread 的基本...
juc并发编程脑图以及相关示例代码
Linux操作系统与程序设计,一个并发回音服务器与客户端的设计。cpp文件和运行方式截图,包括测试截图都在里面
java并发相关经典书籍,不用多介绍了吧,Doug Lea等大拿亲力巨作,并发相关权威书籍。