Reference

  1. Java并发编程:Callable、Future和FutureTask

http://www.cnblogs.com/dolphin0520/p/3949310.html

JAVA回调机制(CallBack)详解
http://www.importnew.com/19301.html

  1. 智力题:http://blog.csdn.net/zhangerqing/article/details/8138296

  2. 泛型: http://iteye.blog.163.com/blog/static/18630809620131472312201/

在成员方法中使用泛型,需在方法修饰符(public)后添加泛型的定义

  1. Java内存模型

Java 内存模型:
http://www.cnblogs.com/nexiyi/p/java_memory_model_and_thread.html

  • Java工作内存和主内存的交互
    • 从主内存读数据:lock>read>load>use>unlock
    • 往主内存写数据:lock>assign>store>write>unlock

深入Java内存模型:http://www.infoq.com/cn/articles/java-memory-model-1

  • 在并发编程中,我们需要关注两个关键的问题:如何实现线程通信以及线程同步。在命令式编程中,线程通信的两个方法主要是:共享内存和消息传递。
  • 在共享内存的并发模型中,线程之间通过共享程序的公共状态,读写内存中的公共状态进行隐式通信;在消息传递的并发模型中,线程之间必须通过明确地发送消息来进行通信。
  • 同步是控制不同线程之间操作相对顺序的机制。在共享内存的并发模型中,同步是显式进行的,程序员必须指定某个方法或某段代码必须互斥执行;在消息传递并发模型中,由于消息的发送必须在消息接收之前,所以同步是隐式执行的。

Java的并发采用的是共享内存的并发模型,Java线程之间的通信是隐式进行的,对程序员透明。
Java中,所有实例域、静态域和数组元素都存在堆中,堆内存在线程之间共享。局部变量、方法定义参数、异常处理器参数不会再线程之间共享。
在执行程序时,为了提高性能,编译器和处理器常常对指令进行重排序
- 编译器优化的重排序
- 指令级的重排序
- 内存级的重排序

  • String

    JDK源码分析之String篇 http://www.tuicool.com/articles/BJ3eIj

  • 集合类

    http://blog.csdn.net/zhangerqing/article/details/8122075

  • HashMap、HashTable、ConcurrentHashMap

    http://blog.csdn.net/zhangerqing/article/details/8193118

    • HashMap继承了AbstractMap,而HashTable继承了Dictionary
    • HashTable使用Enumeration,HashMap使用Iterator
    • HashMap: key和value可以为null;线程不安全;效率高
    • HashTable: key不能为null;线程安全;synchronized实现锁
    • ConcurrentHashMap: 线程安全的HashMap版本;key不能为null;基于lock实现锁
  • HashSet对象实现equals和hashcode

    http://jingyan.baidu.com/article/d5a880eb8fb61d13f147cc99.html
    http://blog.sina.com.cn/s/blog_700aa8830101jtkq.html

    • hashCode不同时,则必为不同对象。hashCode相同时,根据equlas()方法判断是否为同一对象。
  • NIO

    http://www.importnew.com/18763.html

  • Java对象内存布局

    http://www.open-open.com/lib/view/open1423111722764.html- Java 锁
    http://www.importnew.com/19429.html

  • http://ifeve.com/threadlocal%E4%BD%BF%E7%94%A8/

    • synchronized和lock区别:
      • synchronized是Java内置关键字;lock是接口
      • synchronized锁不能响应中断;lock可以
      • lock可以返回获取锁的状态
      • lock可以提高多线程读操作的效率
      • lock需要主动释放锁;synchronized自动释放锁
  • java8新特性

    http://www.importnew.com/19345.html

  • lock与synchronized

    http://www.cnblogs.com/dolphin0520/p/3923167.html

  • 线程池

    http://www.cnblogs.com/dolphin0520/p/3932921.html

  • 动态代理

    http://www.360doc.com/content/14/0801/14/1073512_398598312.shtml

  • 2PC与3PC

你可能感兴趣的:(Reference)