![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java 并发编程
aWoJiuCaLe
这个作者很懒,什么都没留下…
展开
-
如何亲自够造一个高效可伸缩的缓存
缓存可以降低系统延迟,负载,提高吞吐量。我们一般用到的第三方缓存框架OSCache,ehcache,memcache,redis等。当然一 个缓存框架是很复杂的,要考虑key的生成,索引生成,文件结构的生成,序列化还有反序列化,还有淘汰算法,过期检查,还有持久化媒介等。 当然我们不会去实现这么一个复杂的缓存系统。我们下面讲一个用java简单高效可伸缩的内存缓存系统。 ...原创 2017-03-23 17:40:30 · 151 阅读 · 0 评论 -
java并发编程中的活跃性问题
合理的使用多线程,可以提高程序的响应能力,吞吐能力;能够提高硬件资源的利用率。但是如果对多线程不加以合理的利用:比如说对资源不合理的加锁。可能会造成很多的活跃性问题。那么会造成哪些活跃性问题呢? 一.死锁 死锁的经典问题:哲学家问题。大家应该已经耳熟能详了。五个哲学家围绕着同一张桌子吃饭,桌子上共有5根筷子,放在他们每两个人的中间。哲学家们呢,时而思考,时而拿起左右...原创 2017-03-30 15:07:03 · 246 阅读 · 0 评论 -
如何正确的写一个单例?
单例作为一个经典的设计模式,已经耳熟能详。它能够保持全局只保留一个对象访问点。从而可以节约系统资源,加速对象访问。我们现在讨论下如何写出一个在一个最简单的懒汉式单例的写法,如下:public class Sigleton { private static Sigleton instance = null; private Sigleton() { ...原创 2017-04-11 17:43:04 · 167 阅读 · 0 评论 -
java 线程池ThreadPoolExecutor
池化技术,典型有数据库连接池,线程池,宝贵对象池。无论线程,还是数据库连接,都是一种宝贵的资源,创建还是销毁都需要耗费很多时间。对宝贵资源进行池化的目的:减少资源创建销毁时间。防止大量创建资源造成资源耗尽,程序崩溃。复用资源。实现java线程池的有哪几种方式呢?自己手动编写。可以初始化一个容器,里边事先初始化指定数量的线程。ThreadPoolExecutor,j...原创 2017-06-02 19:46:25 · 128 阅读 · 0 评论 -
java 多线程简介 优缺点
(一)进程的出现大家都知道,操作系统出现之前,计算机只能从头到尾执行一个程序,对计算机的资源是一种严重的浪费。最后操作系统出现了,计算机可以并行运行多个任务,每个任务都在自己的进程当中运行,操作系统为每个进城分配硬件(CPU,内存,文件句柄等)资源。那么操作系统解决了什么问题呢,我们总结一下:资源利用率公平性便利性在这种分时系统中,每个进程,都拥有自己的存储指令,内存空间...原创 2017-03-09 14:09:30 · 322 阅读 · 0 评论 -
通过线程封闭达到线程安全状态
我们知道如果要想在多线程环境下访问共享数据,那门是需要进行同步的。同步常常会对应用程序带来活跃性,以及性能问题。其中有一种避免使用同步的方法就是不共享数据,将数据封闭在线程内部,这也是实现线程安全最简单的方式之一。 常用的线程封闭的技术有如下几种:Ad-hoc线程封闭栈封闭ThreadLocal类Ad-hoc线程封闭: Ad-hoc线程封闭技术是指,维护...原创 2017-03-16 15:38:54 · 181 阅读 · 0 评论