自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java多线程的辅助类(重点)

比如一个停车场有3个停车位,来了6辆车,先进来3辆停着,然后出去一个车再进来一个车,依次执行。就是一个加法计数器,设置一个数量和一个方法A,当多个线程执行到一定数量的时候就会回调A方法。就是一个减法计数器,它可以设置一个数量,等待指定数量线程数执行完毕再放开阻塞。Semaphore(使用的非常多)await等待计数器归0再放行。countDown数量-1。

2023-04-29 21:16:08 95

原创 Java多线程Callable

callable接口类似于Runnable,他们都是为了启动线程设计的。区别就是Runnable不返回结果也不抛出异常,Callable正好相反。

2023-04-29 21:15:31 84

原创 Java多线程集合类

CopyOnWriteArrayList原理:现成不安全的ArrayList在多线程添加的时候,会造成多个线程同时写入1下标的值,导致覆盖报错。CopyOnWriteArrayList是写入的时候复制多个List,最后再合并。copyOnWriteArrayList比vector的优势在于,vector是synchronized实现的,效率相对低,CoptyOnWriteArrayList是使用Lock锁实现的。copyOnWrite就是写入时复制,简称COW,是计算机程序设计中的一个优化策略。

2023-04-29 21:14:56 83

原创 秒懂JAVA线程锁

答案:先call,因为静态方法锁的是class对象,call锁的是当前对象,也就是说他俩上的不是同一把锁。答案:先sms,因为synchronized锁是锁对象的,谁先拿到锁谁就先执行。答:先call后sms,因为锁的是对象,两个对象分别调用就会各自执行,不被锁住。问题5:一个静态方法,一个普通方法,先执行call还是sms?答:先sms,因为静态方法锁的是class对象。问题4: 先打印call还是sms?问题1:先打印sms还是call?问题3:先打印call还是sms?

2023-04-25 21:36:37 68

原创 Java并发编程 Lock锁

synchronized和lock锁的区别。传统的synchronized。

2023-04-20 22:02:16 92

原创 Java并发编程基础知识(JUC)

就是java.util.concurrent、java.util.atomic、java.utils.concurrent.locks包。

2023-04-19 21:20:36 54

原创 【MybatisPlus】MybatisPlus多租户

​ MyBatis Plus 的多租户功能是为了满足企业级应用程序的多租户需求而设计的。​ 多租户是指在一个应用程序中,存在多个租户(tenant),每个租户可以独立地使用该应用程序的一部分功能。例如,在一个在线商城中,每个商家都是一个租户,他们可以独立地管理自己的商品、订单等信息,而不会影响其他商家的信息。​ MyBatis Plus 的多租户功能可以让开发者在设计应用程序时,将租户信息与业务数据分离开来,从而更好地保护数据的安全性和隔离性。

2023-04-14 15:24:46 2314

原创 Linux——Crontab定时器

Crontab定时的使用定时:定时器最重要的在于定时上,让我们看看Crontab是如何设置定时规则的。[root@VM-24-14-centos cron]# cat /etc/crontab SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root```bash# For details see man 4 crontabs# Example of job definition:# .----------------

2022-04-06 20:21:13 952 1

原创 Redis集群小结

1.无中心化集群:任何人都能是代理主机,接收到数据不在自己这里就转发到对应的服务中2.为了保证某个节点的可好性,可以实现主从redis,使用哨兵监听主redis的状态,如果主redis宕机则调用从redis接替工作3.插槽:集群中有16384个插槽,数据进来以后会根据算法对key进行计算找到对应的插槽,这样我们在取数据的时候就能知道去哪个插槽里取数据了,该插槽也都对应着redis服务,举例:节点 A 负责处理 0 号至 5460 号插槽。节点 B ...

2022-02-18 14:54:39 311

原创 uni-app封装app在线更新

实现效果:点击软件升级后进行更新下载实现思路:介绍:前后端一并实现,这里我们的后端示例使用PHP的thinkphp6.0框架1.后端设置app的版本号,该版本号与前端uniapp应用版本号对应(在manifest.json中),在有新版本以后要将该版本号进行修改。2.前端带着当前app的版本号请求检查版本接口,查看是否有新版app。3.有新版本就进行更新,如果没有就提示已是最新版本实战demo:前端demo:<template> <view> <b

2022-02-11 15:45:27 1345

原创 PHP的zend引擎

介绍:之前介绍过PHP生命周期与SAPI但是这些都只是架构上的,真正的驱动和执行上都是由zend引擎来完成的编程语言分类:     1.编译型语言:Java、C等语言就是编译型语言,它们需要进行编译,得到编译文件后运行编译文件     2.解释型语言:PHP、Python等语言就是解释型语言,它们不需要经过编译再执行。但是解释型语言不会被计算机理解,计算机只理解机器语言,一般都是需要一个解释器,通过解释器对这些语言进行解

2022-02-06 13:11:09 569

原创 PHP生命周期

CLI/CGI的运行模式中,PHP都属于单线程的SAPI模式,处理请求后就会关闭,处理的过程中也会经过以下几部分:开始接收请求请求处理结束注:了解运行模式:https://blog.csdn.net/weixin_45183997/article/details/122794343了解CLI/CGI:https://blog.csdn.net/weixin_45183997/article/details/122636502接下来我们分别介绍一下生命周期的每个步骤开始:在调用模块前的

2022-02-06 09:37:47 351

原创 PHP的常用运行模式——SAPI

介绍:SAPI其实就是PHP的运行模式,SAPI就是PHP提供的一个对外的通信接口,实现PHP与各个应用直接进行通信,其中需求不同所使用的运行方式也不同,其中包括apache、cli、cgi等。cli模式就是命令行模式,PHP安装时默认会安装该模式,通过这个接口可以使用shell与PHP进行交互CGI和FastCGI模式这两个都是通信网关接口,可以处理页面的请求具体原理:https://blog.csdn.net/weixin_45183997/article/details/122636502

2022-02-05 22:51:36 514

原创 Mysql数据恢复——binlog日志

binlog介绍:binlog记录日志是将数据库的insert、delete、update、create、alter、drop等操作写入binlog日志中。准备工作:1.查看binlog是否开启,log_bin为ON就代表已经开启,未开启则进行第二部操作mysql> SHOW VARIABLES LIKE 'LOG_BIN%';+---------------------------------+----------------------------------------------

2022-01-25 14:22:54 904

原创 Mysql事务嵌套——ThinkPHP事务源码解析

Mysql事务SQL命令介绍 begin:开启事务 commit:提交事务 rollback:回滚事务 savepoint:暂存点,记录事务中的某个节点,可以使用rollback命令回退到指定节点示例//1.开启事务mysql> begin ;Query OK, 0 rows affected//2.第一次修改操作mysql> update form_store set store_num=2 where store_id=1;Query OK, 1 row affec

2022-01-24 15:26:44 920

原创 Think-swoole的使用

常用命令:启动:php think swoole start停止:php think swoole stop重启:php think swoole restart重新加载:phpthink swoole reload准备工作:1.安装think-swoole依赖:composer require topthink/think-swoole2.查看config下是否有swoole.php配置文件,如果没有就去依赖中复制一份到config下 依赖配置文件路径vendor\topthink\t

2022-01-23 12:17:20 1944

原创 PHP-FPM(PHP进程管理器)

PHP-FPM

2022-01-22 13:55:28 2627 5

原创 小程序与H5相互跳转

小程序跳H5页面A <view bindtap="nav"> 官网搜索:点击跳转 </view> nav:function nav(){ wx.navigateTo({ url: 'in', }) },页面B<web-view src='https://www.jinchikexin.com/'></web-view> 仅此一句,src=‘url’

2020-05-22 09:51:03 450

原创 PHP基础算法合集

本片文章中low是开始下键low是开始下键low是开始下键heigh是结束的下键//冒泡排序 for ($i=0;$i<count($arr);$i++){ for($j=0;$j<count($arr)-$i-1;$j++){ if($arr[$j]<$arr[$j+1]){ $temp = $arr[$j]; $arr[$j] = $arr[$j+1];

2020-05-16 19:33:44 114

空空如也

空空如也

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

TA关注的人

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