- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 Java中并发机制原理随笔
Java原生锁四种状态变化:无锁、偏向锁、轻量级锁、重量级锁。 volatile关键字处理器会执行两步操作:将该修改的缓存数据写回到内存中、标记其他处理器缓存了该数据为无效状态。 对于经常写的共享变量一般补齐到一个缓存行的大小(Intel一般为64字节)。 处理器实现原子操作的方法:缓存锁定(常用)与总线锁定。 ...
2021-01-31 16:23:32
203
原创 Java日志总结
Java日志主要日志框架JUL简介Log4j简介JCL简介Slf4j简介Logback简介 主要日志框架 Java Util Logging(JUL) Logback Log4j Log4j2 Jakarta Commons Logging(JCL) Simple Logging Facade For Java(Slf4j) 日志门面: JCL Slfj 日志实现 JCL Logback Log4j Log4j2 日志记录器一般以全限定包名区分,并且会继承,默认以包名或者类名产生唯一日志记录对象
2020-08-08 16:13:36
289
原创 关于C语言中线程同步的方式
C语言中线程同步的方式线程同步互斥锁读写锁条件变量信号量 线程同步 在多线程环境中,线程之间由于竞争共享资源(临界资源)容易引起数据不一致的问题。一般采用互斥锁(互斥信号量)解决,保证只有一个线程进入临界区。 互斥锁 使用步骤: 初始化互斥锁 静态创建/** * 使用宏定义以及初始化锁 */ pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; 动态创建/** * 参数: * 1:互斥锁 * 2:互斥锁属性 */ int pthr
2020-07-31 10:48:49
4783
原创 关于C语言中进程通信的5种方式
Unix/Linux系统中C语言进程通信的5种方式进程通信广义进程通信方式单机环境中常见的进程通信方式管道通信命名管道内存映射信号共享内存 进程通信 操作系统中每个进程地址空间相互独立,进程间通信必须经过内核。 广义进程通信方式 文件 管道 内存映射 共享内存 信号 套接字 消息队列 剪切板 远程过程调用 … 单机环境中常见的进程通信方式 管道通信 管道通信也成为匿名管道。管道通信使用方式最简单,用于有血缘关系的进程间通信。 主要特点: 使用两个文件描述符,一端表示读,一端表示写 两个进程都终结管道才
2020-07-30 18:10:49
4529
原创 前端跨域解决方案
1. 什么是跨域 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。 什么是同源策略? 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是...
2019-02-04 19:02:34
172
原创 Java 8中 Stream
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。 Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, ...
2019-01-07 20:11:15
179
原创 JAVA WEB生成图片验证码示例
package com.xiaohao; import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import ...
2018-11-21 14:46:15
251
原创 同步、异步与阻塞、非阻塞的辨别理解
对于同步、异步与阻塞、非阻塞的理解,可以参考一下示例: 老张把水壶放到火上,立等水开。同步阻塞 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。同步非阻塞 老张还是觉得自己有点傻,于是变高端了,买了把会响笛的那种水壶,老张把响水壶放到火上,立等水开。异步阻塞 老张觉得这样傻等意义不大,老张把响水壶放到火上,去客厅看电视,水壶响之前不再去看它了,响了再去拿壶。异步非阻塞 老张...
2018-11-19 09:02:28
210
1
原创 MyBatis逆向问题Failed to load ApplicationContext
当修改了数据库的表进行逆向工程时,一定要删除以前的*mapper.xml映射文件,否则就会加载失败,出现Failed to load ApplicationContext的错误
2018-03-30 15:32:36
559
1
原创 关于新建项目提交git时出现的refusing to merge unrelated histories的错误
关于git提交出现的错误:这是因为Git 从 2.9.0 版本开始,预设不允许合并没有共同祖先的分支,需要加上 --allow-unrelated-histories 进行 pull 操作才不会出现此类错误信息。在控制台输入一下命令:然后输入成功提交。...
2018-03-30 15:10:27
338
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅