- 博客(9)
- 收藏
- 关注
原创 多线程并发问题——乐观锁、悲观锁
悲观假设线程安全问题一定会发生,因此在操作数据之前先获取锁,确保线程串行执行。性能一般(一个线程执行必须先等待上一线程释放共享资源),但是实现简单。常见的同步、互斥都是悲观锁。
2024-03-28 21:45:29 460 1
原创 Redis常见问题(更新中)
增加逻辑时间,若逻辑时间过期,获取互斥锁,并将重建缓存数据交给另一个新线程,自己直接返回过期数据,不等待,而其余查询缓存的线程获取锁失败,也直接返回过期数据,不等待;例如未能访问到数据则获取互斥锁,直至数据库重建缓存数据,写入缓存才释放锁,其余线程检测到上锁(未能获取互斥锁)则等待并重试获取锁,直至锁释放,缓存命中。请求的数据在缓存和数据库中都不存在,则缓存永远不会生效,请求会直接打到数据库,如果大量线程都请求不存在的数据,会损坏数据库。但是性能受影响,因为线程需要等待,会有死锁风险。线程不等待,性能好;
2024-03-27 23:16:04 405
原创 算法刷题通用小结(更新中)
如果题目给的数组排好序后一重复的元素,例如[-1,0,1,1,1,2,5]。此时若target=0,要求三个数一组,那么即使排序了,也会有重复的组合,例如[-1,0,1]这种组合就会有三个。有三个1,遍历时,下标虽然在往后移,但值是一样的,都符合要求。保证每一个数组是有顺序的,例如每一个数组中后一个元素比前一个元素大/小,这样可以去掉仅改变元素顺序而重复的数组,例如[0,1,-1]和[1,0,-1]。此时需注意 [0,1,-1]和[1,0,-1]元素顺序不同,但所用元素相同,所以集合是重复的。
2024-03-22 15:37:41 153 1
原创 Java变量详解(存储位置,访问权限)
属于类,可以被类的实例(对象 )共享,无论有多少个对象,静态变量都只会被分配一次内存。该变量可以通过类名访问,也可以通过对象访问。且就算字符串内容相同也会创建新的对象,例如。指定义在类中(方法、代码快外)的变量。属于对象,可通过对象访问。不能被static修饰。且同样的字符串在常量池中。代码块/方法内部访问。
2024-03-20 23:42:01 242
原创 Java数据类型详解
基本数据类型基本数据类型概览共8种:整型 byte、short、int、long浮点型 float、double字符型 char布尔型 boolean。
2024-03-19 22:37:24 605
原创 C++数组语法细节
数组定义需指定数组类型和数组大小从函数返回数组C++ 不允许返回一个完整的数组,但是,可以通过指定不带索引的数组名来返回一个指向数组的指针。编译不成功,需改为指针修改:输出错误原因:test()函数内的数组是局部变量,函数执行完后会被销毁,指向它的指针会失效,C++不支持在函数外返回局部变量的地址。解决:将局部变量定义为静态变量,使用静态数组或动态数组。修改:或输出。
2024-03-18 14:46:48 358 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人