摘要:
多线程设计模式:1.Single Threaded Execution Pattern[同一时刻只允许一个线程操作] 比喻:三个挑水的和尚,只能同一时间一个人过桥,不然都掉河里喂鱼了。 总结:在多个线程同时要访问的方法上加上synchronized关键字。2.Immutable Pattern[变量... 阅读全文
2015年2月1日 #
摘要:
volatile型变量的特殊规则volatile是Java虚拟机提供的最轻量级的同步机制,当一个变量被定义成volatile后,它将具备两种特性,第一是保证此变量对所有线程的可见性,这里的“可见性”是指当一条线程改变了这个变量的值后,新值对于其他线程来说是可以立即得知的;第二个语义是禁止指令重排序,... 阅读全文
摘要:
主存储器和工作存储器Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域,这些区域包括方法区,堆,虚拟机栈,本地方法栈,程序计数器。方法区存储类信息,常量,字节码等数据,堆内存存储所有生成的对象,方法区和堆内存为所有线程共享,而虚拟机栈是每个线程独有的,也就是说每个线程... 阅读全文
摘要:
接上一篇《多线程设计模式总结(二)》,这篇博客再聊一下最复杂的Active Object模式12)Active ObjectActive Object模式,也称为Actor模式。Active Object即主动对象,它不仅拥有独立线程,并且可以从外部接收异步消息,并能配合需要返回处理结果。这里的Ac... 阅读全文
摘要:
接上一篇《多线程设计模式总结(一)》,这篇博客再介绍5个多线程设计模式7)Thread-Per-Message实现某个方法时创建新线程去完成任务,而不是在本方法里完成任务,这样可提高响应性,因为有些任务比较耗时。示例程序:12345678910public class Host { private ... 阅读全文
摘要:
并发程序的编程与设计是一个难点,也是程序员必须掌握的一个点。工作之后写的第一个软件里面也有并发编程,当时在设计并发这块感觉好复杂,最后的实现感觉也有点乱。当时就想好好学习一下并发编程的设计,但是一直没有时间。今年看了两本并发编程相关的书,《多线程设计模式》和《Java并发编程与实战》。本想着和设计模... 阅读全文