自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 [redis数据结构]跳表的实现

跳表的实现,对面试很重要吧

2022-07-02 17:14:00 165

原创 ThreadLocal源码解读

new在new ThreadLocal的时候,采用了斐波那锲散列法生成对应的hash使得hash值分布的更加平均private static int nextHashCode() { return nextHashCode.getAndAdd(HASH_INCREMENT);}setpublic void set(T value) { //从本线程拿到ThreadLocalMap Thread t = Thread.currentThread(); ThreadLocalMa

2022-03-12 09:04:49 153

原创 Semaphore和countDownLatch完全解析

Semaphore和countDownLatch差不多,都涉及到共享锁,也涉及到PROPAGATE,所以一起讲,至于ReentrantReadWriteLock以及CyclicBarrier,这个之后再说,如果不了解aqs请查看之前的博文SemaphoreSemaphore semaphore = new Semaphore(2); //设置state值semaphore.acquire();semaphore.release();初始化的时候设置一个值,如果线程acquire数量超过了这个值,

2022-03-12 09:03:56 476

原创 AQS解析(以ReentrantLock公平锁为例)

AQS解析以ReentrantLock公平锁为例AQS中进程节点的状态线程的2种等待模式:SHARED:表示线程以共享的模式等待锁(如ReadLock)EXCLUSIVE:表示线程以互斥的模式等待锁(如ReentrantLock),互斥就是一把锁只能由一个线程持有,不能同时存在多个线程使用同一个锁线程在队列中的状态枚举:CANCELLED:值为1,表示线程的获锁请求已经“取消”SIGNAL:值为-1,表示该线程一切都准备好了,就等待锁空闲出来给我(比如现在头节点的值为-1,那么说明头节点

2022-03-12 09:00:40 257

原创 红黑树完全解析(基于TreeMap)

红黑树的例子在线例子网址https://www.cs.usfca.edu/~galles/visualization/RedBlack.html内部节点及类定义Get/Set方法省略static class RBNode<K extends Comparable<K>, V> { private RBNode parent; private RBNode left; private RBNode right; private boolean color;

2022-03-09 12:16:33 465

原创 Spring AspectJ和Schema的AOP

简单例子待增强的beanpackage com.smart;import com.smart.anno.NeedTest;public class NaiveWaiter implements Waiter { public void greetTo(String clientName) { System.out.println("NaiveWaiter:greet to "+clientName+"..."); } }前置增强package com.smart.aspectj

2021-09-12 23:00:00 108

原创 Spring AOP增强的注意

在同一个类的内部方法之间调用增强方法增强会无效,比如:待增强的bean:package com.smart.advisor;public class Waiter{ public void serveTo(String name){ System.out.println("waiter serving "+name+"..."); //内部调用greetTo方法 greetTo(name); } public void greetTo(String name) { S.

2021-09-12 22:50:49 173

原创 redis学习--docker部署

docker run -d --name redis_test -p 44444:6379 redis:latestdocker exec -it redis_test redis-cli#start with persistent storagedocker run -d --name redis_test -p 44444:6379 --appendonly yes -v /home/cjs/docker/redis/redis_test_data:/data redis:latest #加

2020-08-07 02:23:24 158

原创 redis学习--7redis持久化

事务redis单条命令保证原子性,事务不保证原子性redis的事务:开启事务(multi)命令入队(…)执行事务(exec)放弃事务discard 命令可以放弃异常编译型异常,事务中所有命令都不会执行(如语法错误)运行时异常,其他命令可以执行,错误命令抛出(如1/0)锁悲观锁:无论做什么都会加锁乐观锁:判断一下是否有人修改数据,如果修改数据,就抛弃使用watch给变量加乐观锁,若判断在执行的时候修改了数据,则抛弃执行的操作执行成功后,watch会自动解锁

2020-08-07 02:22:13 106

原创 redis学习--6事务,锁

事务redis单条命令保证原子性,事务不保证原子性redis的事务:开启事务(multi)命令入队(…)执行事务(exec)放弃事务discard 命令可以放弃异常编译型异常,事务中所有命令都不会执行(如语法错误)运行时异常,其他命令可以执行,错误命令抛出(如1/0)锁悲观锁:无论做什么都会加锁乐观锁:判断一下是否有人修改数据,如果修改数据,就抛弃使用watch给变量加乐观锁,若判断在执行的时候修改了数据,则抛弃执行的操作执行成功后,watch会自动解锁

2020-08-07 02:21:28 110

原创 reids学习--5zset类型

Zset有序集合zset在set基础上增加了一个排序(权值),需手动指定,分数越小,越排前面zaddzadd name 序号 value 序号2 value2 .。。。依据序号的重要程度排序zrangezrange name start end 查询zset中的元素,默认从小到大排序,若要从大到小,使用zrevrangezrangescorezrangebyscore name min max [withscores] 按照范围输出由小到大排序,min-max指定范围,若要输出

2020-08-07 02:20:31 221

原创 redis学习--4hash类型

Hashmap集合,key-map存储hsethset key-outer key-inner value 在key-outer中设置key-inner value这个键值对hgethget key-outer key-inner 取出这个值hmsethmset key-outer key-inner1 value1 key-inner2 value2 … 设置多个键值对hmgethmget key-outer key-inner1 key-inner2… 取出多个值

2020-08-07 02:19:43 115

原创 redis学习--3set类型

setset中的值不能重复set中的值是无序的saddsadd+name+value 添加value进name名的setsmemberssmermbers + name 查看set中的valuesismembersismember+name+value 判断某一个值是不是在set中scardscard+ name 查看set中数量sremsrem+name+value 移除set中的valuesrandmembersrandmember+name+nu

2020-08-07 02:19:01 533

原创 redis学习--2list类型

List可以实现栈和队列所有list命令都是l开头的list中值可以重复list中无值,则自动销毁lpush 从左入,rpush从右入 (list下标由左向右)lpush+name+value 将value从左边放入名为name的list中rpush+name+value 相反lrangelrange+name+start+end 将名为name的list中下标从start到end的值读取,包括end,末尾可以使用-1,此操作不会取出vlauellenllen+name

2020-08-07 02:18:08 155

原创 redis学习--1基本使用+string类型

基本使用使用select切换数据库,默认16个数据库,可在配置databases选项更改dbsize查看数据库空间keys * 查看所有key值exists +key 查看key值是否存在flushall 清空所有数据库16个flushdb 清空当前数据库数据类型redis-keymove​ move+key+DBnumber 将当前数据库值移动到第几个数据库set​ set+key+value 设置键值对expire​ expire + key+ secon

2020-08-07 02:17:17 153

原创 linux--iptables学习总结

pkts:对应规则匹配到的报文的个数。bytes:对应匹配到的报文包的大小总和。target:规则对应的target,往往表示规则对应的"动作",即规则匹配成功后需要采取的措施。prot:表示规则对应的协议,是否只针对某些协议应用此规则。opt:表示规则对应的选项。in:表示数据包由哪个接口(网卡)流入,我们可以设置通过哪块网卡流入的报文需要匹配当前规则。out:表示数据包由哪个接口(网卡)流出,我们可以设置通过哪块网卡流出的报文需要匹配当前规则。source:表示规则对应的源头地址,可以是.

2020-07-28 22:34:19 776

原创 pandas.read_csv()方法参数

shkiprows=n 跳过前n行sep='::' 读取的数据使用“::”分隔读取engine='python' 使用python加载,或者cnrows=n 只读前n行na_values = 'NULL' # 将NULL识别为空值parse_dates=['date_colume_name1','date_colume_name2'] 读取为日期timedelta格式name=['colume_name1','colume_name2'] 给读取的列命名index_col = ['...

2020-06-28 15:26:53 162

pikachu.zip

动手学深度学习第9.6.0_prepare_pikachu.ipynb,已经转好的数据集,可以直接使用pytorch

2021-09-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除