https://blog.csdn.net/xiawu1990/article/details/78350253?utm_source=blogxgwz7 慎用thread.sleep(),会线程阻塞,等待期间什么也干不了,相当于程序死了。 ...
LZ一开始配置到启动类里面,结果出现了主线程阻塞的情况。 如下是流程: 首先修改配置文件redis.conf中的:notify-keyspace-events Ex,默认为notify-keyspace-events "" (注释掉默认的,注意notify-keyspace-events Ex之前不 ...
分类:
其他好文 时间:
2019-03-07 15:55:03
阅读次数:
317
悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做 ...
分类:
其他好文 时间:
2019-03-02 18:27:39
阅读次数:
169
第一种 懒汉式,线程不安全,无法在多线程工作 第二种 懒汉式,线程安全,但是锁的力度较大,易造成线程阻塞,导致效率低下 第三种,饿汉式,利用ClassLoder机制避免了多线程的同步问题,但是没有Lazy loading的效果 第四种,饿汉式,和第三种无较大差别,在类初始化的时候实例化对象 第五种, ...
分类:
其他好文 时间:
2019-02-27 22:11:16
阅读次数:
221
这是一种策略,用于决定重试者应如何在重试尝试之间进行阻止。通常这只是一个thread.sleep(),但是如果需要的话,实现可能更复杂。 一、阻塞策略相关的类或接口 1、阻塞策略接口:BlockStrategy 底层默认使用来 Thread.sleep 完成线程阻塞,从而实现重试之间的等待{@lin ...
分类:
其他好文 时间:
2019-02-24 13:43:35
阅读次数:
187
1、什么是Redis?Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis与其他key-value缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份
分类:
其他好文 时间:
2019-02-23 12:15:26
阅读次数:
251
线程从生到死有几种状态: 创建(new) 就绪start 运行running 阻塞sleep 死亡dead cpu调用线程是从可调度线程池中调用, 当线程阻塞时会移出可调度线程池。 线程是不能直接从阻塞状态直接变成运行状态的, 需要先变成就绪状态,当cpu调用该线程时, 就会变成运行状态。 控制线程 ...
分类:
编程语言 时间:
2019-02-15 22:28:25
阅读次数:
273
在前边介绍Socket和ServerSocket连接交互的过程中,读写都是阻塞的。套接字写数据时,数据先写入操作系统的缓存中,形成TCP或UDP的负载,作为套接字传输到目标端,当缓存大小不足时,线程会阻塞。套接字读数据时,如果操作系统缓存没有接收到信息,则读线程阻塞。线程阻塞情况下,就不能处理其他事 ...
分类:
编程语言 时间:
2019-02-01 21:07:10
阅读次数:
197
如果线程是因为调用了wait()、sleep()或者join()方法而导致的阻塞,可以中断线程,并且通过抛出InterruptedException来唤醒它;如果线程遇到了IO阻塞,无能为力,因为IO是操作系统实现的,Java代码并没有办法直接接触到操作系统。以下是详细的唤醒方法: ...
分类:
编程语言 时间:
2019-01-30 17:10:46
阅读次数:
171
原文:深入学习Redis(2):持久化前言 在上一篇文章中,介绍了Redis的内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复制(及读写分离)、哨兵、以及集群。 本文将先说明上述几种技术分别解决了Redis高可用的什么问题;然后详细介绍Redis的持久化技术,主要是RDB... ...
分类:
其他好文 时间:
2019-01-29 10:57:30
阅读次数:
233