摘要:http://stackoverflow.com/questions/11872520/executorcompletionservice-why-do-need-one-if-we-have-invokeall
阅读全文
摘要:https://docs.oracle.com/javase/specs/jls/se8/html/jls-17.htmlhttps://docs.oracle.com/cd/E19205-01/820-0619/geojs/index.htmlhttp://www.ibm.com/develope...
阅读全文
摘要:参考http://docs.oracle.com/javase/tutorial/essential/concurrency/highlevel.htmlhttp://ifeve.com/high-level-concurrency-objects-full/Lock ObjectExecutors...
阅读全文
摘要:参考http://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.htmlhttp://ifeve.com/immutable-objects/Immutable Objects如果一个对象创建后不能更改状态,则被认为是...
阅读全文
摘要:参考http://docs.oracle.com/javase/tutorial/essential/concurrency/guardmeth.htmlhttp://ifeve.com/oracle-guarded-blocks/线程间协调工作
阅读全文
摘要:Liveness problems:deadlock,starvation and livelockDeadlockDeadlock描述的是两个或多个线程被永远block住,彼此等待的情况。package mthread;public class Deadlock { static class...
阅读全文
摘要:Java线程间通过共享内存来实现,当两个或多个线程访问一个变量会引起内存一致性问题,同步可以解决这个问题;同步会带来线程竞争和死锁等问题Thread Interferenceclass Counter { private int c = 0; public void increment(...
阅读全文
摘要:sleepThread.sleep让当前线程暂停执行一段时间,CPU时间让给其它线程和进程;sleep的时间段是不精确的;sleep可以被中断public class SleepMessages { public static void main(String args[]) t...
阅读全文
摘要:参考http://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.htmlhttp://lavasoft.blog.51cto.com/62575/99151创建线程创建线程有两种方式1、实现Runnable接口publ...
阅读全文
摘要:参考http://lavasoft.blog.51cto.com/62575/99150http://www.programmerinterview.com/index.php/operating-systems/thread-vs-process/http://docs.oracle.com/ja...
阅读全文
摘要:http://docs.oracle.com/javase/8/javase-books.htmhttp://codeplanet.io/principles-good-restful-api-design/http://lavasoft.blog.51cto.com/62575/27069http...
阅读全文
摘要:http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.htmlhttp://ifeve.com/lambda/http://www.cnblogs.com/figure9/archive/2014/10/24/404...
阅读全文
摘要:http://blog.regehr.org/archives/490Arace conditionis a flaw that occurs when the timing or ordering of events affects a program’s correctness. General...
阅读全文
摘要:DatagramChannelIf you want to receive datagrams at a certain local port number you have to bind to that local port number. If you only want to receive...
阅读全文
摘要:NIO1主要需要理解Selector,SelectableChannel和SelectionKey三个类之间的关系以及用法.Selector管理注册到Selector上SelectableChannel集合的就绪状态信息。它的核心是选择过程(select方法),他是通过调用底层操作系统select ...
阅读全文
摘要:AtomicInteger/AtomicBoolean/AtomicLong/AtomicReferenceAtomicIntegerArray/AtomicLongArray/AtomicReferenceArrayAtomicIntegerFieldUpdater/AtomicLongFieldUpdater/AtomicReferenceFieldUpdaterAtomicMarkableReference/AtomicStampedReferenceAtomicMarkableReference类描述的一个的对,可以原子的修改Object或者Boolean的值,这种数据结构在一些缓存或
阅读全文
摘要:http://www.infoq.com/cn/articles/fork-join-introduction1. 什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。比如计算1+2+。。+10000,可以分割成10个子任务,每个子任务分别对1000个数进行求和,最终汇总这10个子任务
阅读全文
摘要:1.underscorehttp://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.htmlfloat pi1 = 3_.1415F; // Invalid; cannot put underscores adjacent to a decimal pointfloat pi2 = 3._1415F; // Invalid; cannot put underscores adjacent to a decimal pointlong socialSecurityNum...
阅读全文
摘要:Map map = new HashMap(); map.put("1", 100); if (map.containsKey(1)) { System.out.println(map.get(1)); } if (map.containsKey("1")) { System.out.println("this one:" + map.get("1")); } Integer sx = null; if (sx == 3) { System.o...
阅读全文
摘要:1.Download jdk rpm package:jdk-7u40-linux-i586.rpm2.sudo rpm -ivh jdk-7u40-linux-i586.rpm3.update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_40/bin/java 300 update-alternatives --remove java /usr/java/jdk1.7.0/bin/java4.alternatives --config java5.vi /etc/profile#java environmentex
阅读全文