摘要:
一、定义 线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。当线程进入对象的synchronized代码块时,便占有了资源,直到它退出该代码块或者调用wait方法,才释放资源,在此期间,其他线程将不能进入该代码块。当线程互相持有对方所需要的资源时,会互 阅读全文
摘要:
在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下: 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设 阅读全文
摘要:
停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的,而且是已被废弃的方法。在java中有以下3种方法可以终止正在运行的线程: interrupt( 阅读全文
摘要:
事务:事务指的是逻辑上的一组操作,这组操作要么都成功,要么都失败。 Transaction事务的四大特性ACID: 1.Atomicity原子性 事务的操作要么都成功,要么都不做,只要有一个失败,就会回滚。 如A转账100给B:A转出100,B转入100,这两步要么一起完成,要么都不做。 2.Con 阅读全文
摘要:
Redis的数据结构 五种数据类型: 字符串(String)、字符串列表(list)、字符串集合(set)、有序字符串集合(sorted set)、哈希(hash) key定义的注意点: 不要过长,不要超过1024个字节 不要过短,会降低可读性 要有统一的命名规范 存储String 二进制的方式存储 阅读全文
摘要:
Redis的持久化有两种方式: RDB方式(默认支持):在指定的时间间隔内将内存中的数据集快照写入磁盘 优势 整个Redis数据库将只包含一个文件,对于文件备份来说是完美的,系统出现灾难性的故障时容易恢复 性能最大化,开启服务器时,只需要做的是分叉出一些进程,再由子进程来完成持久化操作,极大的避免服 阅读全文