02 2018 档案

摘要:分布式环境下,数据一致性问题一直是一个比较重要的话题,而又不同于单进程的情况。分布式与单机情况下最大的不同在于其不是多线程而是多进程。多线程由于可以共享堆内存,因此可以简单的采取内存作为标记存储位置。而进程之间甚至可能都不在同一台物理机上,因此需要将标记存储在一个所有进程都能看到的地方。 常见的分布 阅读全文
posted @ 2018-02-23 13:29 XuMinzhe 阅读(206) 评论(0) 推荐(0)
摘要:MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务的基础。 Multi 和 Exec Multi:开启一个事务,它总是返回 OK 。执行之后, 客户端可以继续向服务器发送任意多条命令, 这些命令不会立即被执行, 而是被放到一个队列中, 当 EXEC 命令被调用时, 所 阅读全文
posted @ 2018-02-23 11:20 XuMinzhe 阅读(164) 评论(0) 推荐(0)
摘要:熟悉设计模式的人对于代理模式可能都不陌生。那什么事代理呢,例如我们要买一件国外的商品,但是自己买不到只能去找代购,这个代购就是我们的代理。我们来了解下java中的代理 静态代理 我们来举一个开车的例子, 首先定义一辆车 再新建一个具体实现类 这个时候启动汽车 输出 这个时候我们想在汽车发动前系上安全 阅读全文
posted @ 2018-02-21 17:51 XuMinzhe 阅读(326) 评论(0) 推荐(0)
摘要:ReentrantLock的功能是实现代码段的并发访问控制,也就是通常意义上所说的锁,java中实现锁有两种方式,一种是本文所提的ReentrantLock,另一种是synchronized。ReentrantLock相比synchronized 使用可以更灵活,这次就来看看ReentrantLoc 阅读全文
posted @ 2018-02-19 16:40 XuMinzhe 阅读(937) 评论(0) 推荐(0)
摘要:线程池: 线程池,顾名思义存放线程的池子,因为频繁的创建和销毁线程池是一件非常损耗性能的事情,所以如果先定义一个池子里面放上一定量的线程,有需要的时候就去里面取,用完了再放里面,这样不仅能缩短创建销毁线程的时间,也能减轻服务器的压力。在jdk1.5中Doug Lea引入了Executor框架,把任务 阅读全文
posted @ 2018-02-12 14:22 XuMinzhe 阅读(355) 评论(0) 推荐(0)
摘要:初始化: 问题:如何当且仅只有一个线程初始化table 1、第3行 判断当前系统的table是否为空,这里用volatile 修饰table,对于各个线程都是可见的 2、第4行 判断sizeCtl 是否小于零,因为在初始化的过程中,会把sizeCtl设置成-1,所以如果小于零,说明当前有其他线程正在 阅读全文
posted @ 2018-02-07 10:55 XuMinzhe 阅读(226) 评论(0) 推荐(0)
摘要:Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)获得任何一个类的字节码。包括接口、变量、方法等信息。还可以让我们在运行期实例化对象,通过调用get/set方法获取变量的值。 一下我们通过几个小demo来了解java反射的相关知识 首先,我们先定义一个类,以 阅读全文
posted @ 2018-02-04 15:06 XuMinzhe 阅读(226) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示