- 博客(10)
- 资源 (9)
- 收藏
- 关注
原创 java 内存模型
,所谓线程安全无非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型,要解决两个主要的问题:可见性和有序性。我们都知道计算机有高速缓存的存在,处理器并不是每次处理数据都是取内存的。JVM定义了自己的内存模型,屏蔽了底层平台内存管理细节,对于java开发人员,要清楚在jvm内存模型的基础上,如何解决多线程的可见性和有序性。 在并发编程中,需要处理两个关键问题:线程之间如何通信和线程之间如何同步通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内
2015-12-29 13:44:01 79
原创 eBay 可伸缩性最佳实践
,不相关的功能之间耦合程度越松散,就越能灵活地独立伸缩其中的一部分。在编码层次,我们无时不刻都在运用这条原则。JAR文件、包、Bundle等等,都是用来隔离和抽象功能的机制。在应用层次,eBay将不同的功能划分成几个应用程序池。销售功能由一组应用服务器运行,投标功能由另一组负责,搜索又是另外一组服务器。我们把总 共约16,000台应用服务器分成220个池。这样就可以根据某项功能的资源消耗,单独地伸缩其中一个池。我们也因此得以进一步隔离及合理化资源依赖关系 ——比如销售池只需要访问后台资源的一
2015-12-22 13:48:18 83
原创 互联网电商应用架构探讨
[b]应用架构的演进历程:[/b]强依赖-> Service化->业务解耦->读写分离->异步->水平/垂直拆分->服务逻辑分组[img]http://dl2.iteye.com/upload/attachment/0113/8128/a9c04cec-bfb1-333c-aeb1-8e14fb38a226.png[/img]强依赖遵循简单的MVC架构,Controller层处理了所有的业务逻辑包括与DB的交互,在系统初期这种Simple
2015-12-16 13:56:09 338
原创 Java 并发编程_Volatile
在堆内存中,Volatile只作用于共享变量。内存屏障(Memory Barriers):是一组处理器指令,用于实现对内存操作的顺序限制。缓冲行(Cache line):缓存中可以分配的最小存储单位。处理器填写缓存线时会加载整个缓存线,需要使用多个主内存读周期。原子操作(Atomic operations):不可中断的一个或一系列操作缓存行填充(cache line fill):当处理器识别到从内存中读取操作数是可缓存的,处理器读取整个缓存行到适当的缓存(L1,L2,L3的或
2015-12-15 13:42:39 92
Ora9iSQLRef.chm
2009-09-01
Struts 1.3
2009-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人