石福鹏

个人博客

置顶 多线程与高并发(一)

多线程-基本概念 1、基本概念 程序: wechat.exe 进程: wechat.exe启动后,叫做一个进程,是相对于程序来说的,是个动态的概念 线程: 作为一个进程里面最小的执行单元就叫一个线程,或者说,一个程序里不同的执行路径就叫做一个线程 1234567891011121314151617181920212223242526272829303132333435363738394041......

置顶 Java 基础查漏补缺【多线程机制篇】

概念 线程: 是一个程序内部的顺序控制流。通俗的来说,是一个程序里面不同的执行路径 (记住这句话就可以了) 程序: wechat.exe 进程: wechat.exe启动后,叫做一个进程,是相对于程序来说的,是个动态的概念 线程: 作为一个进程里面最小的执行单元就叫一个线程,或者说,一个程序里不同的执行路径就叫做一个线程 平时所讲的进程开始执行了,是指进程中的主线程(main方法)开始执......

满足某个日期满足条件的周、月日期处理工具类

主要用法看一下main方法中的说明就知道了 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192......

在Mac系统上使用Dokcer搭建LNMP环境

每次换电脑或者重装系统之后,开发环境的搭建很费事,整不好还遇到一些乱起八糟的大坑,所以最好是直接使用dokcer,换环境的时候,镜像拉起就OK了

最开始准备自己头搭建一套,即直接在Mac上分别安装Nginx、Mysql、PHP,对于新手来说,刚毕业的同学来说,一定自己一步一步搭,刚开始会趟好多的坑,这些坑你一定要趟,这样也就知道了一些服务运行的原理,在服务架构上处于什么位置,发挥什么作用,都是通过一次一次的实践去理解的。 但是我这里就不这样玩了,因为我就是为了省时间,并且也不再Docker上一个一个的搭建,有现成的轮子,拿过来,修改一......

生成的sign出现偶发性的签名验证失败问题排查

最近做了一个微信企业付款,即微信企业账户给用户下发红包的功能,从测试开始就出现偶发性的报SIGN_ERROR签名错误,因为自己的项目比较多,就让同时帮忙debug排查了,排查的结果就是没问题,红包发放正常。 但是一上测试,就会偶发; 发现问题 无奈之下,我就把每次请求的request、response都打印出来了,通过微信支付接口签名校验工具测试了下,发现sign并不一致 发现一个问题,后......

macOS Catalina下安装nvm、node及每次需要重载配置文件问题解决

在使用hexo写博客的时候,经常需要执行一些命令,但是发现每次打开终端,输入命令就提示command not found,找到问题后记录下这个问题,以及在最新的Catalina系统下安装nvm

每次需要重载配置文件的问题解决 先说几个概念,做前端开发的伙伴肯定都知道,但是做后端的,虽然偶然能用到,但是基本上都是按照网上的教程,并不清楚nvm、npm、nodejs三者的区别 nvm:是nodejs的版本管理工具 也就是说一个nvm可以管理很多node版本和npm版本 nodejs:项目开发时所需要的代码库 npm:nodejs包管理工具 在安装nodejs的时候,npm也会跟着一起......

Hexo博客搭建-博客上传后访问页面返回404问题排查

前言 给自己的Mac重新做了系统之后,按照正常的流程,安装nvm(安装的最新的版本),安装node,然后安装hexo,一切都很顺利的进行,然后在之前已经备份好的博客源文件的根目录执行hexo g、hexo d,然后去访问博客发现404了 问题发现 查看了下_config.yml配置文件,没啥问题,这些应该没啥问题,因为源码都是之前一直用鱼发布博客用的,没做过什么修改,所以肯定没问题了,就上......

【每日一题】如何解决ABA问题?为什么能解决?解决思路是什么?

问题分析 aba问题出现在cas机制的操作中,cas 比较并更新,比如说cas(期望的值,更新的值),如果发现变量是期望的值,那么就将该值替换为更新的值。 这里面存在的问题就在于,如果期望的值中途被人改掉了,但是后面又被改了回来, cas机制不能发现这个过程,也是发现期望值其实中间发生过变动。 解决方式 给数据加上版本号或者时间戳,比较期望值的时候 比较的是值和版本号或者时间戳,即使值相同,......

【每日一题】Java 多线程中notify和notifyall的区别是?

notify notify唤醒在此对象监视器上等待的单个线程。 如果所有线程都在此对象上等待,则会选择唤醒其中一个线程。选择是任意性的,并在对实现做出决定时发生。线程通过调用其中一个 wait 方法,在对象的监视器上等待。 直到当前线程放弃此对象上的锁定,才能继续执行被唤醒的线程。被唤醒的线程将以常规方式与在该对象上主动同步的其他所有线程进行竞争; 例如,唤醒的线程在作为锁定此对象的下一个线......

macOS Catalina 已损坏无法打开解决办法

App 在macOS Catalina下提示已损坏无法打开解决办法: 打开终端; 输入以下命令,回车; 1sudo xattr -d com.apple.quarantine /Applications/xxxx.app 注意:/Applications/xxxx.app 换成你的App路径(推荐直接将.app文件拖入终端中自动生成路径,以防空格等转义字符手动复制或输入出现错误) ......