会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Syso(Alt+/)Cjs
博客园
首页
新随笔
联系
管理
订阅
01 2019 档案
Redis——发布/订阅
摘要:上一篇提及到使用任务队列来实现进程间的消息传递(https://www.cnblogs.com/SysoCjs/p/10332778.html或者https://blog.csdn.net/weixin_39400271/article/details/86670850),Redis还提供了一组命令
阅读全文
posted @
2019-01-29 10:13
KamShing
阅读(206)
评论(0)
推荐(0)
Redis——任务队列
摘要:很多博客网站中都会有发送邮件这个功能,发送邮件是一个双向数据的交互过程,如果使用单线程实现,很难避免会等待很长时间的情况出现,但碍于某些框架或语言不容易实现多线程,这时可以通过进程来实现。设想一个进程能够完成发邮件的功能,那么只要通知这个进程向指定的地址发送邮件就可以了。 通知的过程可以借助任务队列
阅读全文
posted @
2019-01-29 10:05
KamShing
阅读(689)
评论(0)
推荐(0)
GOF设计模式——Builder模式
摘要:一、什么是Builder模式? builder模式,就好比一栋大楼,这栋大楼有很多个组件组成,但是这栋大楼只是一个各个组件结合起来的框架,每一栋大楼都有各自的特色,这些特色由它们实际情况决定。对于程序而言,这栋大楼就好比一个Builder抽象类,里面定义了很多组件方法,一个完整的功能离不开里面的每一
阅读全文
posted @
2019-01-27 16:27
KamShing
阅读(317)
评论(0)
推荐(0)
GOF设计模式——Prototype模式
摘要:一、什么是Prototype模式? 在编程中,我们可以使用new关键字指定类名来生成类的实例,但是有时候也会有不指定类名的前提下生成实例。因为有时候对象种类繁多,无法将它们整合到一个类中;或者,生成实例的过程过于复杂,难以根据类生成实例;又或者,想要将类与框架解耦。这时,为了能够在不使用类名的情况下
阅读全文
posted @
2019-01-27 16:22
KamShing
阅读(200)
评论(0)
推荐(0)
GOF设计模式——Singleton模式
摘要:一、什么是Singleton模式? Singleton模式就是平常所说的单例模式,简单来说就只有一个实例。在使用java.lang.String的时候,将不同的字符串赋给String引用,其实就是创建了一个String对象实例,当有1000个不同的字符串创建的时候,就会出现1000个实例。有时候,我
阅读全文
posted @
2019-01-27 16:17
KamShing
阅读(304)
评论(0)
推荐(0)
GOF设计模式——Factory Method模式
摘要:一、什么是Factory Method模式 Factory Method模式是用来构建生成实例的工厂,在该模式下,父类决定实例生成的方式,但并不决定所要生成的具体类。这样的设计思想,就跟Template Method模式相似(具体参考:https://www.cnblogs.com/SysoCjs/
阅读全文
posted @
2019-01-27 16:14
KamShing
阅读(182)
评论(0)
推荐(0)
Redis的列表(List)类型
摘要:列表类型(List)可以存储一个有序的字符串列表,常用的操作就是向列表两端添加元素,或者获取列表中某一个片段。 列表类型内部使用双向链表(double linked list)实现的,所以向列表两端添加或删除元素的速度非常快,越是接近两端的元素就越快,但是,也有弊端,就是通过索引访问元素的速度比较慢
阅读全文
posted @
2019-01-27 16:08
KamShing
阅读(479)
评论(0)
推荐(0)
GOF设计模式——Template Method模式
摘要:一、什么是Template Method模式 顾名思义,Template Method模式就是模板方法模式。所谓的模板,就好比我们练书法一样,刚开始练习的时候,会拿各种各样的字样模板,照着写,练楷书时,就拿楷书模板,练行书时,就用行书模板。过程是固定的,即都是按着模板写,只是具体是楷书,还是行书,视
阅读全文
posted @
2019-01-27 15:56
KamShing
阅读(174)
评论(0)
推荐(0)
GOF设计模式——Adapter模式
摘要:一、什么是Adapter模式? Adapter模式,又称为适配器模式。 这是一个很通俗的名字,“适配器”,我们可以联想到笔记本电脑的充电器(专业名称又叫适配器),每一台笔记本电脑会对应只有一个适配器,适配器的作用是对民用的电压和电流进行转换,使得电压和电流满足当前的笔记本电脑的实际需求。那么,到了程
阅读全文
posted @
2019-01-27 15:40
KamShing
阅读(257)
评论(0)
推荐(0)
GOF设计模式——Iterator模式
摘要:Iterator,自然而然想到的是用于集合遍历的迭代器Iterator,没错Iterator模式就是指这个意思。 先来看一段代码: 上面是编程里面很常见的遍历数组的用法,假如我不直接操作array对象,然后将用于表示下标的 i 抽象化,通用化,将遍历的动作交给迭代器,那么这种模式就叫做Iterato
阅读全文
posted @
2019-01-27 15:31
KamShing
阅读(214)
评论(0)
推荐(0)
多线程——重入锁
摘要:当某个线程请求一个由其它线程持有的锁时,该线程就会进入等待或者阻塞状态,一直到持有锁的线程释放锁,然后再去竞争获取锁。然而,内置锁(即Synchronized修饰的锁对象)是可重入的,因此如果某个线程试图获得一个已经由它自己持有的锁,那么它会成功获得此锁,这就是所谓的重入锁,也可以理解为锁的重入。
阅读全文
posted @
2019-01-27 15:26
KamShing
阅读(248)
评论(0)
推荐(0)
多线程——volatile
摘要:在多线程中,为了使得某个变量对任意一个线程可见,会使用volatile对该变量进行修饰。 理解volatile之前,要先知道线程是如何调用变量的。每一个线程都拥有自己的一个私有堆栈,变量是定义在主内存中,而每个线程会将变量copy一份到私有堆栈。每次启动线程操作,都会先从主内存读取熟读到私有堆栈,然
阅读全文
posted @
2019-01-27 15:24
KamShing
阅读(157)
评论(0)
推荐(0)
Timer类的schedual()与schedualAtFixedRate()的追赶性区别
摘要:使用Timer类对逻辑进行预设时,常用到两个方法,一个是schedual,另一个是schedualAtFixedRate。两者都有多种重载方法,当预设的执行时间在当前时间之后,那么两者执行的效果是完全一样;但是,反之,却出现一个很大的区别,就是追赶性。 schedual方法是不具备追赶性,而sche
阅读全文
posted @
2019-01-27 15:15
KamShing
阅读(556)
评论(0)
推荐(0)
多线程的Lock锁——ReentrantReadWriteLock
摘要:上一篇讲到ReentrantLock是排他性,一方面保证了线程的绝对安全,但另一方面降低了效率。对于一些不需要操作实例变量的方法中,有另外一种锁可以提高运行效率,这种锁就是ReadWriteReentrantLock。 ReentrantReadWriteLock,也称为读写锁。读写锁有两个锁,一个
阅读全文
posted @
2019-01-25 14:37
KamShing
阅读(178)
评论(0)
推荐(0)
多线程的Lock锁——ReentrantLock
摘要:在Java多线程中,可以使用synchronized关键字来实现线程之间的同步互斥,但在JDK1.5中新增了Lock锁,同样可以实现同样的效果,并且扩展功能上也更加强大,比如嗅探锁定、多路分支通知等功能,而且使用上也更灵活。 Lock锁分为两类:ReentrantLock和ReentrantRead
阅读全文
posted @
2019-01-25 14:32
KamShing
阅读(442)
评论(0)
推荐(0)
公告