Java多线程编程核心技术-4-Lock对象的使用

基本用法Java多线程可以使用synchronized关键字来实现线程间同步,不过JDK 1.5新增加的ReentrantLock类也能达到同样的效果,并且在扩展功能上更加强大,如具有嗅探锁定、多路分支通知等功能。 ReentrantLock类可以直接new一个ReentranLock。然后再后面的方法中使用该对象的方法来进行同步处理。 例如: 1private Lock lock = new ReentrantLock(); lock()方法lock方法用于锁定当前的ReentrantL...

Read More

MySQL关键字问题

因为之前排查一个sql错误,看了半天才发现是关键字占用,但是作为属性又没有提示,所以这里记录以下MySQL的所有关键字。 本来一般的排查方案是将sql复制到UI工具中查看,但是有些UI工具提示并不全(可能是版本问题),比如groups关键字,SQLyog就不会提示。导致一直没有排查出来。 MySQL的关键分为占用或不占用。如果是占用的关键词,那么就不能直接使用。必须添加引号,注意这个引号是 ` ,即英文状态下的波浪号。其他的引号是无法做到消除占用的,包括单引号和双引号。 如果是不占用的...

Read More

反射获取私有数据问题

这里记录通过反射访问私有变量并赋值的方法。第一种是最普遍的,可以访问没有公开的私有变量。而后两种似乎有点多余,直接调用方法也行,权当记录一下后两种操作方法吧。 preUser对象 1234567891011121314151617181920212223242526272829303132333435363738package reflect;public class User { private int id; private String name; private Stri...

Read More

Java多线程编程核心技术-2-对象及变量的并发访问

在上一篇文章Java多线程编程核心技术-1-多线程技术基础中,提到了共享变量造成的非线程安全问题。 本文就是为了解决非线程安全的相关问题。 synchronized同步方法关键字synchronized可用来保障原子性、可见性和有序性。 但是在学习synchronized之前,我们必须明确一点: synchronized锁住的是对象。即使是synchronized方法。 线程安全问题和解决方案就像前一文中提到的,只有多线程共享的变量才会面临线程安全问题。 即定义在线程类中并且被多个实例化为...

Read More

git常见场景与冲突处理

常见场景暂存区确认暂存区1234// 增加所有文件到暂存区$ git add .// 增加指定文件到暂存区$ git add [filename] 撤销暂存区12345// 取消所有最新的暂存区文件$ git reset HEAD .// 取消缓存区最新的指定文件$ git reset HEAD REAMDME.md 注意该命令的参数HEAD是要被恢复的版本, 一般选择HEAD, 即恢复到最新的HEAD。 下面撤销commit也使用该命令。 提交确认提交12// 进行一次提交并附加消息'm...

Read More

shiro、spring和JWT的集成

XML配置1. 配置web.xml 配置springShiro.xml文件读取 1234<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml classpath:springShiro.xml</param-value></context-param> ...

Read More


Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2022 My Wonderland All Rights Reserved.

UV : | PV :