Reference

作者: 鬼谷神奇 | 来源:发表于2016-05-05 23:33 被阅读60次
  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中,所有实例域、静态域和数组元素都存在堆中,堆内存在线程之间共享。局部变量、方法定义参数、异常处理器参数不会再线程之间共享。
在执行程序时,为了提高性能,编译器和处理器常常对指令进行重排序
- 编译器优化的重排序
- 指令级的重排序
- 内存级的重排序

相关文章

网友评论

      本文标题:Reference

      本文链接:https://www.haomeiwen.com/subject/tmyfrttx.html