- 博客(47)
- 问答 (1)
- 收藏
- 关注
原创 线程状态是五种还是六种
当调用LockSupport.unpark方法或者调用线程的interrupt(),会让目标线程从WAITING–>RUNNABLE。当前线程调用LockSupport.park()方法的时候会让当前线程从RUNNABLE–>WAITING。调用obj.wait(long n)方法时,t线程从RUNNABLE --> TIMED_WAITING。当当前线程的所有代码执行完成之后,表示线程已经执行完毕,生命周期已经结束了,不会再转换为其他状态.t线程用synchronized(obj) 获取了对象锁之后。
2023-05-12 19:01:36
708
原创 Java中线程的状态
Thread.yield(),一定是当前线程调用此方法,当前线程放弃获取的CPU时间片,但不释放锁资源,由运行状态变为就绪状态,让OS再次选择线程。thread.join()/thread.join(long millis),当前线程里调用其它线程t的join方法,当前线程进入WAITING/TIMED_WAITING状态,当前线程不会释放已经持有的对象锁。线程一旦终止了,就不能复生。当前线程sleep()方法结束,其他线程join()结束,等待用户输入完毕,某个线程拿到对象锁,这些线程也将进入就绪状态。
2023-05-11 19:08:37
805
原创 notify()和notifyAll()有什么区别?
等待池:假设一个线程A调用了某个对象的wait()方法,线程A就会释放该对象的锁后,进入到了该对象的等待池,等待池中的线程不会去竞争该对象的锁。锁池:只有获取了对象的锁,线程才能执行对象的 synchronized 代码,对象的锁每次只有一个线程可以获得,其他线程只能在锁池中等待。notifyAll() 唤醒对象的等待池中的所有线程,进入锁池。结果:仅调用一次 obj.notify(),线程 t1 或 t2 中的一个始终在等待被唤醒,程序不终止。把 t3 注掉,启动 t4 线程。
2023-05-11 17:48:10
116
原创 jquery ajax报Uncaught TypeError :Illegal invocation
后来发现是我传参的时候使用 item,把整个对象传进去,这样识别不了,后来改成这样就可以了。1.请求类型有误,如,post请求,但在后台设置的是get请求。如,没有传参,或是参数对应不上去。将 item 这个对象分开传,就可以了。
2023-03-24 12:29:18
741
原创 解决 CentOS 在 mariadb 数据库服务因某些原因自动关闭后,服务重启的配置方法
解决 CentOS 在 mariadb 数据库服务因某些原因自动关闭后,服务重启的配置方法
2022-09-29 16:42:22
1617
1
原创 Java json库性能
目前对于Java开源的JSON类库有很多种,下面我们取4个常用的JSON库进行性能测试对比, 同时根据测试结果分析如果根据实际应用场景选择最合适的JSON库。这4个JSON类库分别为:Gson,FastJson,Jackson,Json-lib。简单介绍选择一个合适的JSON库要从多个方面进行考虑:字符串解析成JSON性能字符串解析成JavaBean性能JavaBean构造JSON性能集合构造JSON性能易用先简单介绍下四个类库的身份背景Gson项目地址:https://githu
2021-12-24 18:59:14
330
原创 proto -I的使用
proto 编译文件用到的 -Ibin\protoc.exe --java_out=..\testMessage -I=..\testMessage ..\testMessage\proto\*.protoecho 'done'pause上面的-I 的意思是-IPath 查询的文件路径,就是说动你设定的…\testMessage这个目录里查找你要编译的proto (…\testMessage\proto*.proto)。如果没有就从本身所在的目录里查找,可以设置多个查询目录。...
2021-10-27 19:56:46
438
原创 ScheduledThreadPoolExecutor中的scheduleAtFixedRate和scheduleWithFixedDely的区别
ScheduledThreadPoolExecutor中的scheduleAtFixedRate和scheduleWithFixedDely的区别测试代码运行结果scheduleAtFixedRatescheduleWithFixedDelay结论scheduleAtFixedRatescheduleWithFixedDelay我们在开发中经常有定时调度某一个任务的需求,在java中常用的是通过定时调度线程池ScheduledThreadPoolExecutor来实现,这个线程池有两种方法schedul
2021-10-22 16:37:10
532
原创 二进制运算
二进制运行负数: 正数的补码补码:反码 加 1例子: 14 = 00000000 00000000 00000000 00001110反码: 11111111 11111111 11111111 11110001加一: 11111111 11111111 11111111 11110010就是 -14的二进制...
2021-08-20 10:29:27
135
原创 scourceTree 安装
accounts.json 文件放的位置C:\Users\Administrator\AppData\Local\Atlassian\SourceTree文件夹下[ { "$id": "1", "$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity", "Authenticate": true, "HostInstance": {
2021-06-22 13:48:56
313
原创 CentOS7中安装Redis4.0.14
前言工欲善其事必先利其器,操作 Linux 服务器得有一个用着舒服的客户端,这里推荐使用 MobaXtermMobaXterm 下载地址:https://mobaxterm.mobatek.net/download.htmlRedis 下载地址:https://redis.io/download传输打开下载好的 MobaXterm,使用 SSH 连接方式连接成功后默认到 root 目录MobaXterm 左边是目录,在左边目录的最底部,有个选择框(Follow terminal f
2020-06-04 09:53:39
270
原创 数据库分库分表策略的具体实现方案
一、MySQL扩展具体的实现方式随着业务规模的不断扩大,需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量。关于数据库的扩展主要包括:业务拆分、主从复制,数据库分库与分表。这篇文章主要讲述数据库分库与分表(1)业务拆分在 大型网站应用之海量数据和高并发解决方案总结一二 一篇文章中也具体讲述了为什么要对业务进行拆分。业务起步初始,为了加快应用上线和快速迭代,很多应用都采用集中式的架构。随着业务系统的扩大,系统变得越来越复杂,越来越难以维护,开发效率变得越来越低,并且对资源的消耗
2020-05-22 10:49:49
265
原创 Windows下RabbitMQ安装及配置
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。1、安装Erlang下载地址:https://www.erlang.org/downloads,本文选择OTP 21.0.1 Windows 64-bit Binary File (91707927),如果下载失败或者速度太慢建议在https://www.e
2020-05-12 15:42:51
213
原创 Springboot 整合RabbitMq ,用心看完这一篇就够了
原文链接:https://blog.csdn.net/qq_35387940/article/details/100514134该篇文章内容较多,包括有rabbitMq相关的一些简单理论介绍,provider消息推送实例,consumer消息消费实例,Direct、Topic、Fanout的使用,消息回调、手动确认等。 (但是关于rabbitMq的安装,就不介绍了)在安装完rabbitMq后,输入http://ip:15672/ ,是可以看到一个简单后台管理界面的。在这个界面里面我们可以做些什么?
2020-05-12 15:02:23
570
原创 SpringBoot+Thyemleaf开发环境正常,打包jar发到服务器就报错Template might not exist or might not be accessible
网上查看了各种解决的思路,总结如下:在controller层请求处理完了返回时,没有使用@RestController或@ResponseBody而返回了非json格式这种情况下返回的数据thymeleaf模板无法解析,直接报错解决方案:可以将@Controller换成@RestController,不过需要注意有没有其他的方法返回了html页面,会导致返回的不是页面而是字符串;最好的方法就是在你所请求的方法上面加一个@ResponseBody即可。在你的controller层对应的方法返回
2020-05-11 14:32:28
359
原创 面试官,不要再问我三次握手和四次挥手
三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题。很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了。见过比较典型的面试场景是这样的:面试官:请介绍下三次握手求职者:第一次握手就是客户端给服务器端发送一个报文,第二次就是服务器收到报文之后,会应答一个报文给客户端,第三次握手就是客户端收到报文后再给服务器发送一个报文,三次握手就成功了。面试官:然后呢?求职者:这就是三次握手的过程,很简单的。面试官:。。。。。。(番外篇:一首凉凉送
2020-05-09 17:51:30
127
原创 TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景
一、OSI 模型OSI 模型主要作为一个通用模型来做理论分析,而TCP/IP 协议模型是互联网的实际通讯协议,两者一般做映射分析,以下不做严格区分和声明(好吧,比较懒);OSI 整个模型层次大致可以分为3个主要层面来看|…主机…| 操作系统和软件等 应用、表示、会话|…网络…| 互联网络和相关协议 传输、网络 (TCP/IP)|…介质…| 物理介质相关 数据链路、物理下图模型为OSI1,主机需要网络传输数据,网络本质上是一种服务,主机和网络之间靠传输层接口,就好比你要叫快递送东西;2
2020-05-09 17:01:48
1746
原创 luasocket安装编译
lua下载之后,在下载luasocket,tar 解压之后,修改config文件LUAINC=-I/usr/games/lua-5.1.1/src#usr/games/lua-5.1.1/src 是你lua文件的地址## 生成lua文件的地址INSTALL_TOP_SHARE=/usr/local/share/lua/5.1## 生成so文件的地址INSTALL_TOP_LIB=/u...
2020-05-08 14:46:15
513
原创 java 泛型中的T、E、K、V、?等含义
java泛型中T、E、K、V、?等含义E- Element (在集合中使用,因为集合中存放的是元素),E是对各方法中的泛型类型进行限制,以保证同一个对象调用不同的方法时,操作的类型必定是相同的。E可以用其它任意字母代替T- Type(Java 类),T代表在调用时的指定类型。会进行类型推断V- Value(值)N- Number(数值类型)?- 表示不确定的java类型,是类型通配符...
2020-05-07 13:09:39
1016
原创 Lua查找表元素过程(元表、__index方法是如何工作的)
Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Value对,如果尝试访问了一个表中并不存在的元素时,就会触发Lua的一套查找机制,也是凭借这个机制来模拟了类似“继承”的行为举例说明:tempTable = {}print(tempTable.memberA) --这里试图打印tempTable并不存在的成员memberA执行结果:nil输出为nil的原因很...
2020-05-06 18:40:15
657
原创 lua函数:和.的区别
先看一段代码:local Animal = {}function Animal:Eat( food ) print("Animal:Eat", self, food)endfunction Animal.Sleep( time ) print("Animal.Sleep", self, time)endAnimal:Eat("grass")Animal.Eat(...
2020-05-06 17:11:33
392
原创 乐观锁和悲观锁
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理...
2020-04-30 14:40:47
116
原创 同步异步和阻塞非阻塞
“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由*调用者*主动等待...
2020-04-30 11:21:46
106
原创 linux时间修改
时间显示date时间修改date -s保存在硬盘hwclock -w与服务器时间同步查看时区date -R选择时区dzselect更新到网络时间(阿里时间)ntpdate ntp1.aliyun.com保存...
2020-04-26 16:28:59
186
原创 springboot日志配置
日志对项目的很重要。1、springboo推荐的日志类库是slf4j、日志系统为logback2、通过在application.properties文件中配置logging.file、logging.path可以控制日志文件的输出路径和文件名。不过有些细节需要注意,否则配置不生效,我测试了几种情况。3、如果,两者都配置了:logging.file=myLog.log、loggi...
2020-04-26 15:35:15
131
原创 Linux安装jdk
两种方法:一种手动安装用yum,安装如下1、检查安装的版本yum -y list java*2、安装jdk1.8命令:yum install -y java-1.8.0-openjdk.x86_643、查询jdk版本命令 java -version这样就安装成功了。默认给安装到usr/lib/jvm/手动安装官网路径下完之后解压就好转载https...
2020-04-24 17:11:16
120
原创 message from server: "Host 'XXXX' is not allowed to connect to this MySQL server"
连接mysql时报:message from server: "Host ‘XXX’ is not allowed to connect to this MySQL server处理方案:use mysql;2.select host from user where user = ‘root’; 发现,host的值就是localhost。3.update user set host=’...
2020-04-24 16:40:58
189
原创 nginx配置文件nginx.conf解释
########### 每个指令必须有分号结束。##################user administrator administrators; #配置用户或者组,默认为nobody nobody。#worker_processes 2; #允许生成的进程数,默认为1#pid /nginx/pid/nginx.pid; #指定nginx进程运行文件存放地址error_lo...
2020-04-23 18:53:37
152
原创 lua 排序的坑,table.sort()排序不成功
local tbl = { [66]= {userid = 66, score = 88, upTime = 30}, [22]= {userid = 22, score = 66, upTime = 10}, [55]={userid = 55, score = 66, upTime = 90}, [33]={userid = 33, score = 99, upTime = ...
2020-04-23 18:14:18
2086
原创 新建springboot项目遇到的问题,以及解决方法
用软件直接搭建一个springboot项目,出现的问题问题一controller层监听不到解决方法:排查问题得到springboot项目启动是通过main方法,里面有一个注解@SpringBootApplication。通过这个@SpringBootApplication来启动项目,这个注解是@SpringBootConfiguration和@EnableAutoConfigu...
2020-04-22 18:32:14
547
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人