自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Java中线程常见方法

两个方法都是让一个线程不要运行,把CPU时间片让给另一个线程运行,但是调用方法后,原先运行的线程的状态不同,调用Sleep后线程转变成TIMEDWAITING,是一种阻塞状态,调用yield后,线程转变成Runnable就绪状态,这个状态还是可能被分配时间片的。,表示这个线程被其他线程打断,是一个布尔值。打断哪个线程就用哪个线程的interrupt方法,阻塞状态的线程被打断会抛异常InterruptedException。线程可以用setpriority设置优先级,默认为5,数字越大,优先级越高,

2023-10-25 00:05:00 38 1

原创 命令行中关于进程线程的方法

切到线程,Java里活动的线程有15个。也能看到死循环的线程Thread0。前面是PID,然后用taskkill /F /PID 杀死,再看idea。把刚刚的死循环打开,然后cmd输入jconsole。写一个死循环程序,用一个线程输出“死循环线程”在CMD输入jps,找到这个类的进程。

2023-10-25 00:03:36 302 1

原创 线程运行原理

比如一个线程要执行十行代码,但是当执行完八行代码的时候,CPU时间片用完了,就记录一下“现在执行到了第八行代码”,然后再上下文切换,恢复另一个线程的状态。main是一个主线程,主线程已启动,虚拟机就会给他分配一块栈内存。栈内存由一个个栈帧组成,先调用的是main方法,就会为main方法产生一个栈帧,加载完,虚拟机就会启动一个main线程,为他分配内存,接下来线程交给任务调度器进行执行,main线程里又会有一个main方法的栈帧内存。栈由栈帧组成,一个方法对应一个栈帧,每个线程的栈帧是相互独立的。

2023-10-25 00:03:05 40 1

原创 创建和运行线程

可以看到,FutureTask继承了Runnable,也可以当做一个任务对象,那么与Runnable不同的是,还多继承了一个Future接口。单核CPU中多线程不能实际提高程序运行效率,但是可以让CPU在不同线程切换,不至于一个线程总占用CPU。创建一个Thread的子类,重写run方法,run方法中是线程要执行的任务代码,有一个数组,容量一亿,都是1,分别用单线程和多线程求和一亿次。单核CPU,要顺序执行,就是10+11+9+1=31ms。可以看到,和Runnable很像,但是他可以。

2023-10-25 00:02:14 94 1

原创 MySQL中的锁

所以这条SQL锁住的区间是。

2023-10-19 17:29:51 122 1

原创 MySQL之MVCC

多版本并发控制,在innoDB引擎下,快照读的前提下,通过隐藏字段、undolog版本链,ReadView协调合作下,会返回不同版本的行记录。

2023-10-18 20:38:05 46 1

原创 常见排序算法(二)

然后把基准元素和第二指针后面的元素比较,如果后面的元素小于基准元素,就交换第二指针和这个较小元素的位置。最后找完后,交换基准元素和第二指针的位置,把基准元素方中间。在一个数组里选择有边界为基准元素,然后比它小的放在它左边,比它大的放在它右边,然后再在子数组里重复这个过程。第一次分割后,i=1,j=2,比较这两个起点,谁更小谁放进结果数组,第一次递归调用后,rs有一个1。第二次递归调用,i=5,j=2,把2放进结果数组,rs=1,2…具体过程,找的基准元素后,找一个比他大的数,设置为第二指针。

2023-10-18 15:05:28 84 1

原创 Redis和Mysql数据一致性问题

步骤是先更新数据库,再删除缓存,那么为了防止删除缓存失败,可以引入消息队列,将要删除的数据放在消息队列里,如果删除缓存失败,就一直重试,如果删除成功,就把数据移出消息队列。因为缓存写入快,所以这个图是错的,实际上执行完②之后立刻会执行好⑤。**此时更新了数据库,但是缓存里还是旧数据,读数据时读到的不还是错误数据吗?所以正常更新数据库,再删除缓存就可以了。再看这个图,我提前给每一步编了号,原图还是小林coding。似也会数据不一致,看上去缓存里是20,数据库是21。看图,来源小林coding。

2023-10-17 15:24:53 34

原创 Redis过期删除策略和内存淘汰策略

先分开来讲,惰性删除是指不主动删除key,在用到这个key的时候看这个key是否过期,过期则删除。如果过期的key超过1/4,则重新取20个key,循环往复直到过期的key小于1/4或者循环时间到达设置的循环时间上限。而定期删除不好确定检查频率,如果检查太频繁,对CPU不友好,检查不频繁,又和惰性删除差不多。这两种都有三种策略:random,随机,lru,从最近最少使用的数据里淘汰,lfu,从使用频率最少的数据里淘汰。:顾名思义,懒惰,不主动去删,在每次访问key的时候,查看key是否过期。

2023-10-17 15:24:20 48 2

原创 常见排序算法学习笔记(一)

因此,需要进行arr.length-1次冒泡,就能排好序。

2023-10-16 21:34:49 128 3

原创 Redis持久化学习笔记

语雀转到CSDN怎么感觉还挺麻烦。。

2023-10-15 22:59:06 217

空空如也

空空如也

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

TA关注的人

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