上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 19 下一页
摘要: http://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=2651477305&idx=1&sn=185bc510e4011b3de9fc631bd90ffea1&scene=0#wechat_redirect 引文 4 月份的时候看到一道面试题,据说 阅读全文
posted @ 2016-07-10 10:47 YDDMAX 阅读(353) 评论(0) 推荐(1) 编辑
摘要: 摘要 介绍使用eclipse调试jdk源码 java是一门开源的程序设计语言,喜欢研究源码的java开发者总会忍不住debug一下jdk源码。虽然官方的jdk自带了源码包src.zip,然而在debug时查看变量却十分麻烦。例如调试HashMap的 public V put(K key, V val 阅读全文
posted @ 2016-07-09 19:53 YDDMAX 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 1、java中的每个对象都可作为锁,有三种表现形式: 对于普通方法,锁的是当前this对象。 对于静态方法,锁的是class对象 对于方法块,锁的是synchronized指定的对象。 2、JVM基于Monitor对象来实现昂发的同步和代码块同步,但是实现细节不一样。代码块同步是使用monitore 阅读全文
posted @ 2016-07-08 08:28 YDDMAX 阅读(280) 评论(0) 推荐(0) 编辑
摘要: http://ifeve.com/memory-barriers-or-fences/ 内存屏障提供了两个功能。 1、首先,它们通过确保从另一个CPU来看屏障的两边的所有指令都是正确的程序顺序,而保持程序顺序的外部可见性;(处理器指令冲排序) 2、其次它们可以实现内存数据可见性,确保内存数据会同步到 阅读全文
posted @ 2016-07-07 09:49 YDDMAX 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 第一章 简介 第二章 缓冲区 第三章 channel 阅读全文
posted @ 2016-07-07 09:18 YDDMAX 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 1.2 CPU已不再是束缚 相反,是JVM 自身在I/O 方面效率欠佳。操作系统与Java 基于流的I/O模型有些不匹配。 操作系统要移动的是大块数据(缓冲区),这往往是在硬件直接存储器存取(DMA)的协助下完成的。而JVM 的I/O 类喜欢操作小块数据——单个字节、几行文本。 结果,操作系统送来整 阅读全文
posted @ 2016-07-06 16:33 YDDMAX 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 问题:Thread.join的代码如下,为什么没有加锁却可以wait?另外下面的代码说明线程结束的时候会signal正在wait的线程,实际是signalAll()。 while(isAlive()){ wait(0); } 并发工具类(提供超时等重载方法,含有查询线程排队和统计的接口) 1、Cou 阅读全文
posted @ 2016-07-05 22:42 YDDMAX 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 自己的总结: 1、原子类的核心是循环CAS,其中CAS使用的是unsafe类里面的3种CAS。 2、原子类共分为4类 3、CAS会带来ABA问题,所以直接使用原子类也有ABA问题。但是使用AtomicStampedReference 可以解决这个问题。 4、自己对CAS的理解:含义像下面的代码那样, 阅读全文
posted @ 2016-07-05 22:32 YDDMAX 阅读(677) 评论(0) 推荐(0) 编辑
摘要: 第7章:JAVA中的13个原子操作类 第8章:JAVA中的并发工具类 第9章:JAVA中的线程池 阅读全文
posted @ 2016-07-05 22:08 YDDMAX 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 1、线程池优点 1、降低资源消耗 降低线程的创建和销毁造成的消耗 2、提高响应速度 不需要先创建线程再运行 3、提高线程的可管理性 使用线程池可以统一分配,调优和监控。 2、线程池的流程 如果当前运行的线程少于corePoolSize,则创建新线程来执行任务(这一个过程需要获取全局锁) 如果当前运行 阅读全文
posted @ 2016-07-05 22:05 YDDMAX 阅读(347) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 19 下一页