摘要:
JAVA中有许多线程安全的基础模块类,一般情况下,这些基础模块类能满足我们需要的所有操作,但更多时候,他们并不能满足我们所有的需要。此时,我们需要想办法在不破坏已有的线程安全类的基础上添加一个新的原子操作。有如下4中方案: 1 修改类的源码,以添加新的原子操作 2 继承该线程安全类,并添加原子操作 阅读全文
posted @ 2017-01-17 21:32
无天666
阅读(1240)
评论(0)
推荐(0)
摘要:
学过计算机组成原理的一定知道,为了解决内存速度跟不上CPU速度这个问题,在CPU的设计中加入了缓存机制,缓存的速度介于CPU和主存之间。在进行运算的时候,CPU将需要的数据映射一份在缓存中,然后直接操作位于缓存中的数据,操作完毕后再将缓存中的数据写回到主存。这在单线程环境中是没有任何问题的。但是在多 阅读全文
posted @ 2017-01-17 18:39
无天666
阅读(277)
评论(1)
推荐(0)
摘要:
上一篇博客讲过,当多个线程访问共享的可变变量的时候,可以使用锁来进行线程同步。那么如果线程安全性存在的3个前提条件不同时存在的话,自然就不需要考虑线程安全性了。或者说如果我们能够将某个共享变量变为局部变量,那么自然线程安全性问题就不存在了。 我们把“诸如将全局变量变为局部变量”这种将某个对象封闭在一 阅读全文
posted @ 2017-01-17 17:09
无天666
阅读(953)
评论(1)
推荐(0)
摘要:
第二遍阅读《大型网站技术架构》,真心觉得书中的内容很好,推荐大家去阅读。下面是书中对大型网站架构演变过程的介绍。 对于一个小型企业级网站,通常的架构如下图: 随着用户数量的增多,可以将应用服务与数据服务分离以提高性能,如下图: 用户继续增多,数据库的压力太大,此时考虑使用缓存,如下图:(缓存在网站性 阅读全文
posted @ 2017-01-17 16:25
无天666
阅读(264)
评论(0)
推荐(0)
摘要:
随着网站的发展,一台应用服务器无法处理太多用户请求,考虑部署多台应用服务器组成集群来提供服务。此时问题来了? 问题1:扩展到多台应用服务器时,可能同一个用户的先后两次请求由不同的应用服务器处理,这个时候不同的应用服务器如何进行session的管理。(应用服务器集群的session管理) 问题2:如何 阅读全文
posted @ 2017-01-17 15:44
无天666
阅读(640)
评论(0)
推荐(0)
摘要:
缓存是优化网站性能的第一手段。在大型网站中,缓存通常用来保存热点数据,或者保存应用上下文相关信息。比如之前提到的session服务器集群就可以用分布式缓存来搭建。当然,分布式缓存还可用于缓存数据库中的热点数据以减轻数据库的压力。 分布式缓存的架构方式通常有两种:一种是以JBoss为代表的需要同步的分 阅读全文
posted @ 2017-01-17 15:35
无天666
阅读(281)
评论(0)
推荐(0)
摘要:
中间件就是在大型网站中,帮助各子模块间实现互相访问,消息共享或统一访问等功能的软件产品。常见的有: 远程服务框架中间件:主要解决各子模块之间互相访问的问题。 消息队列中间件:主要解决各子模之间消息共享的问题。 数据访问中间件:用于简化应用层对数据层的访问。 关于远程服务框架中间件,国内目前较多应用的 阅读全文
posted @ 2017-01-17 15:04
无天666
阅读(5557)
评论(0)
推荐(1)
摘要:
Java四种引用类型 1.引用的基本概念 强引用:当我们使用new创建对象时,被创建的对象就是强引用,如Object object = new Object(),其中的object就是一个强引用了。如果一个对象具有强引用,JVM就不会去GC它,JVM宁可会报OOM来终止程序,也不回收该对象。 软引用 阅读全文
posted @ 2017-01-17 14:32
无天666
阅读(3465)
评论(0)
推荐(0)
摘要:
在JVM内部,所有的字符都是用Unicode编码的。而对于JVM所在操作系统的文件系统,可能有不同的编码类型。 由于JVM和OS文件系统所使用的编码方式不同,JVM在与操作系统进行数据交互的时候,就会进行编码转换。因此可以说,所有的乱码问题一定是JVM和OS文件系统进行数据交互时候出了问题。 Jav 阅读全文
posted @ 2017-01-17 14:10
无天666
阅读(1405)
评论(0)
推荐(0)
摘要:
在JVM中,有三种默认的类加载器,分别为Bootstrap ClassLoader,Extension CLassLoader以及App ClassLoader。其中,Bootstrap Classloader用于加载JAVA的核心类库,Extension Classloader用于加载JAVA的扩 阅读全文
posted @ 2017-01-17 12:50
无天666
阅读(229)
评论(0)
推荐(0)