自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小志的博客

随笔笔记仅供参考

  • 博客(29)
  • 资源 (14)
  • 论坛 (1)
  • 收藏
  • 关注

原创 wsimport 生成webservice客户端报错[ERROR] Can‘t connect to SOCKSproxy:http

一、报错描述二、解决方式因lz公司用的是代理网络,去掉代理网络,连接外网,再使用wsimport命令生成webservice客户端,即可解决。

2021-04-28 22:08:55 64

原创 vue直接获取url中的参数

一、问题描述前端vue框架项目,后端springboot框架;lz的需求场景是集成单点登录,通过登录页面路径后追加参数,向后端springboot项目发送请求,后端接收请求后同时获取到追加的参数。二、解决方式网上有说通过路由的方式,lz尝试后失败lz采用不通过路由直接获取url中参数的方法尝试成功三、解决步骤1、在vue项目根目录下创建一个urlParse.js文件export default{ getUrlKey:function(name){ return decod

2021-04-28 22:03:33 458

原创 Consider defining a bean of type ‘com.xxx.webservice.MeetService‘ in your configuration.

一、问题描述springboot项目集成webservice服务端,启动服务端报错,报错如下图二、报错原因配置中找不到一个指定自动注入类型的bean正常情况下加上@Component注解的类会自动被Spring扫描到生成Bean注册到spring容器中,既然他说没找到,也就是说没有加@Component,或者该注解被没有被spring识别三、解决方式一在application启动类中加@ComponentScan注解,然后将webservice接口与对应的实现类放在与applicat

2021-04-28 21:47:39 29

原创 Java并发多线程编程——读写锁的理解与代码示例

目录一、读写锁的理解二、读写锁的代码示例三、多个线程进行读操作的测试案例四、多个线程进行写操作的测试案例五、多个线程进行读写操作的测试案例一、读写锁的理解读写锁实际维护了一对锁,一个读锁,一个写锁,通过分离读锁和写锁,使得其并发性比独占式锁(排他锁)有了很大的提升。读锁(共享锁):同一时刻可以允许多个线程访问共享资源。写锁(排他锁):在写线程访问的时候,所有的读线程和其他写线程都会被阻塞。即如果一个线程想要去写共享资源,就不应该再有其他线程可以对该共享资源进行读或者是写操作了。二、读写锁的代码

2021-04-26 22:37:25 41

原创 Java并发多线程编程——公平锁和非公平锁的理解、源码解析和案例

目录一、公平锁与非公平锁的理解二、公平锁与非公平锁的优缺点三、公平锁与非公平锁的创建方式三、ReentrantLock类中实现公平锁部分源码四、ReentrantLock类中实现非公平锁部分源码五、公平锁代码示例五、非公平锁代码示例一、公平锁与非公平锁的理解公平锁:表示线程获取锁的顺序是按照线程加锁的顺序来分配的,即先来先得的FIFO先进先出顺序非公平锁:一种获取锁的抢占机制,是随机获得锁的,和公平锁不一样的就是先来的不一定先得到锁,这个方式可能造成某些线程一直拿不到锁,结果也就是不公平的了。二

2021-04-25 21:53:24 83

原创 Java并发多线程编程——使用AQS重写自己的锁代码示例

一、使用AQS重写自己的锁代码示例package com.xz.thread.t10;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.AbstractQueuedSynchronizer;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;/** * @description: 使用A

2021-04-22 23:02:38 39

原创 Java并发多线程编程——synchronized和ReentrantLock的区别

一、两者的相同点都是用来协调多线程对共享对象、变量的访问都是可重入锁,同一线程可以多次获得同一个锁都保证了可见性和互斥性二、两者的不同点ReentrantLock显示的获得、释放锁,synchronized隐式获得释放锁ReentrantLock可响应中断、可轮回,synchronized是不可以响应中断的,为处理锁的不可用性提供了更高的灵活性ReentrantLock是API级别的,synchronized是JVM级别的ReentrantLock可以实现公平锁ReentrantLo

2021-04-22 21:33:32 31

原创 Java并发多线程编程——AQS(AbstractQueuedSynchronizer 抽象的队列同步器)详解

目录一、JDK1.6版本在线中文文档二、AQS理解(以下理解全部参考JDK1.6在线文档)三、AQS使用四、AQS中的方法摘要五、AQS使用中5个重要方法详细信息1、tryAcquire2、tryRelease3、tryAcquireShared4、tryReleaseShared5、isHeldExclusively一、JDK1.6版本在线中文文档https://tool.oschina.net/apidocs/apidoc?api=jdk-zh二、AQS理解(以下理解全部参考JDK1.6在线文档

2021-04-22 21:28:06 52

原创 Java并发多线程编程——手动实现锁和重入锁示例

目录一、重入锁的理解二、手动实现锁示例三、手动实现重入锁示例一、重入锁的理解参考此博文:https://wwwxz.blog.csdn.net/article/details/115761429二、手动实现锁示例1、创建MyLock类并实现Lock接口package com.xz.thread.t9;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Condition;import java.u

2021-04-20 21:54:34 71 2

原创 Java并发多线程编程——Lock接口认识与使用

目录一、Lock接口的认识二、Lock接口中的方法三、Lock和Synchronized的区别四、多个线程获取值案例(没有使用同步的情况)五、多个线程获取值案例(使用Lock接口的情况)一、Lock接口的认识Lock需要显示地获取和释放锁,繁琐能让代码更灵活。使用Lock可以方便的实现公平性。Synchronized不需要显示地获取和释放锁,简单。二、Lock接口中的方法java.util.concurrent.locks包下的Lock接口lock() 表示获取锁。unlock()

2021-04-19 21:54:45 38

原创 Java并发多线程编程——JDK5提供的原子类的操作案例

目录一、JDK5提供的原子类二、使用JDK5提供的原子类的代码示例三、一、JDK5提供的原子类java.util.concurrent.atomic包下的类二、使用JDK5提供的原子类的代码示例1、代码package com.xz.thread.t7;import java.util.concurrent.atomic.AtomicInteger;/** * @description: 使用JDK5提供的原子类解决多线程安全问题 * @author: xz */public

2021-04-19 21:11:29 32

原创 Java并发多线程编程——Volatile原理与使用

目录一、volitile的理解二、多个线程获取值案例(没有使用同步的情况)三、多个线程获取值案例(使用Volatile关键字的情况)四、多个线程获按顺序执行的案例六、 Lock指令的理解七、有Volatile为什么还使用synchronized八、synchronized可以取代Volatile,为什么还用Volatile一、volitile的理解Volatile称之为轻量级锁,被volatile修饰的变量,在线程之间是可见的。可见即一个线程修改了这个变量的值,在另外一个线程中能够读到这个修改后的值

2021-04-18 22:18:09 658 10

转载 Java并发多线程编程——重入锁

参考:https://blog.csdn.net/w8y56f/article/details/89554060目录一、重入锁的理解二、方式一:使用synchronized演示例重入锁示例三、方式二:使用ReentrantLock演示例重入锁示例四、使用ReentrantLock演示例重入锁示例(加锁和释放次数不一样导致的死锁)一、重入锁的理解某个线程已经获得某个锁,可以再次获取锁而不会出现死锁。synchronized和ReentrantLock都是可重入的。重入降低了编程复杂性。二、方式

2021-04-16 22:04:47 46

原创 Java并发多线程编程——自旋锁

目录一、自旋锁的理解二、自旋锁的优点三、自旋锁的缺点四、自旋锁示例一、自旋锁的理解当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。二、自旋锁的优点自旋锁不会使线程状态发生切换,一直处于用户态,即线程一直都是active的。不会使线程进入阻塞状态,减少了不必要的上下文切换,执行速度快。三、自旋锁的缺点如果某个线程持有锁的时间过长,就会导致其它等待获取锁的线程进入循环等待,消耗CPU。使用不当会造成C

2021-04-16 22:04:09 46

原创 Java并发多线程编程——死锁

一、死锁的理解多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。线程T1持有锁R1并且申请获得锁R2,而线程T2持有锁R2并且申请获得锁R1,所以线程T1和T2永远被阻塞了。导致了死锁。二、死锁产生的四个必要条件互斥使用:即当资源被一个线程使用(占有)时,别的线程不能使用。不可抢占:资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。请求和保持:即当资源请求者在请求其他的资源的同时保持对原有资源的占有。

2021-04-16 22:03:42 42

原创 Java并发多线程编程——单例问题与线程安全性深入解析

目录一、饿汉式和懒汉式单例模式(单线程示例)二、懒汉式单例模式(多线程示例)一、饿汉式和懒汉式单例模式(单线程示例)1、饿汉式单例模式代码package com.xz.thread.t4;/** * @description: 饿汉式单例模式 * @author: xz */public class HungrySingleton { //直接声明一个需要被单例的对象,并初始化 private final static HungrySingleton singleton=ne

2021-04-16 22:03:25 52 2

原创 Java并发多线程编程——Synchronized关键字之偏向锁、轻量级锁及重量级锁

部分参考:《Java并发编程实战》https://blog.csdn.net/lengxiao1993/article/details/81568130https://blog.csdn.net/weixin_42213903/article/details/97044043https://www.cnblogs.com/deltadeblog/p/9559035.html目录一、synchronized 关键字之(偏向锁->轻量级锁->重量级锁)二、锁信息存在对象哪个地方三、对象.

2021-04-16 08:41:41 46

原创 Java并发多线程编程——Synchronized关键字的原理(jvm层面)

目录一、Synchronized修饰代码块示例二、命令行窗口查看jvm执行代码块示例三、一、Synchronized修饰代码块示例package com.xz.thread.t3;/** * @description: * @author: xz */public class Test { private int value; public int getValue(){ //进入代码块时jvm执行monitorenter命令 //退出代码块

2021-04-16 08:41:16 34

原创 Java并发多线程编程——Synchronized关键字的原理(理论层面)

一、内置锁与互斥锁内置锁:每个java对象都可以用做一个实现同步的锁,这些锁被称为内置锁(Intrinsic)或监视锁(Monitor Lock)。线程在进入同步代码块之前会自动获得锁,并且在退出同步代码块时自动释放锁。互斥锁:java的内置锁相当于一种互斥体(或互斥锁),这意味着最多只有一个线程能持有这种锁。二、Synchronized修饰普通方法1、代码public class Test { private int value; /** * synchroniz

2021-04-16 08:40:56 26

原创 Java并发多线程编程——从Java字节码的角度看线程安全性问题

目录一·、如何产生线程安全性问题二、单线程获取值案例(没有产生线程安全性问题)三·、多线程获取值案例(产生线程安全性问题)一·、如何产生线程安全性问题多线程环境下多个线程共享一个资源对资源进行非原子性操作二、单线程获取值案例(没有产生线程安全性问题)1、代码package com.xz.thread.t3;/** * @description: 单线程情况下输出没有问题 * @author: xz */public class Sequeue { private int

2021-04-14 21:49:19 33

原创 Java并发多线程编程——从线程的优先级看饥饿问题

目录一、多线程优先级二、多线程如何产生饥饿问题三、高优先级吞噬所有低优先级案例四、如何尽量避免饥饿问题一、多线程优先级线程的优先级用1-10之间的整数表示,数值越大优先级越高,默认的优先级为5。需要注意的是不同的系统有不同的线程优先级的取值范围,所以设置线程的优先级不要使用数字,要用MIN_PRIORITY、NORM_PRIORITY及MAX_PRIORITYwindow环境下最小优先级是1(MIN_PRIORITY)window环境下普通优先级是5(NORM_PRIORITY)window环

2021-04-12 22:15:31 47

原创 Java并发多线程编程——多线程所带来的安全风险

一、线程带来的风险安全性问题活跃性问题性能问题二、安全性问题线程安全性可能是非常复杂的,在没有充足同步的情况下,多个线程中的操作执行顺序是不可预测的,甚至会产生奇怪的结果。三、活跃性问题死锁:当一个线程永远保持有一个锁,并且其他线程都尝试获得这个锁时,那么他们将永远被阻塞。在线程A持有锁L并想获得锁M的同时,线程B持有锁M并尝试获得锁L,那么这两个线程将永远地等待下去,这种情况就是最简单的死锁形式。饥饿:当线程由于无法访问它所需要的资源而不能继续执行时,就发生了“饥饿”,引发饥饿的

2021-04-11 23:01:28 52

原创 Java并发多线程编程——线程中断案例

一、线程中断调用java.lang包下的Thread类中interrupt方法二、查看线程是否中断调用java.lang包下的Thread类中interrupted方法三、线程中断案例说明:启动d1和d2两个线程,d2线程调用interrupt方法,查看d2线程是否中断1、代码package com.xz.thread.t1;/** * @description: * @author: xz */public class Demo2 extends Thread{

2021-04-11 21:20:24 32

原创 Java并发多线程编程——守护线程案例

一、守护线程的理解守护线程会在非守护线程执行完毕时就结束,即使自己还没有执行完。简单理解即别的线程停止运行守护线程也停止运行。守护线程最典型的应用就是 GC (垃圾回收器),它就是一个很称职的守护者。二、如何设置为守护线程在Thread类中提供了一个setDaemon(true)方法来将一个普通的线程(用户线程)设置为守护线程三、守护线程案例案例描述:设置d1为守护线程,主线程运行2秒后结束,查看d1守护线程是否还再运行。1、代码package com.xz.thread.t

2021-04-08 22:57:17 39

原创 Java并发多线程编程——获取默认线程名称及自定义线程名称

目录一、获取线程默认名称案例二、如何自定义线程名称二、自定义线程名称案例一、获取线程默认名称案例1、代码package com.xz.thread.t1;/** * @description: * @author: xz */public class Demo1 extends Thread{ @Override public void run() { System.out.println(getName()+"正在运行。。。。。。。。。"); }

2021-04-08 21:23:08 59

原创 Java并发多线程编程——线程的状态

一、线程状态的理解start :表示初始化状态ready-to-run : 表示就绪状态running :表示运行状态sleeping :表示睡眠状态waiting :表示等待状态blocked :表示阻塞状态dead : 表示死亡状态

2021-04-06 23:02:09 29

转载 Java并发多线程编程——进程与线程、并发与并行的理解

一、并发的优点发挥多处理的强大能力建模的简单性异步事件的简化处理响应更加灵敏的用户界面二、并发的缺点安全性问题活跃性问题性能问题三、线程与进程进程指运行中的程序进程是资源分配的基本单位进程中包含多个线程,线程共享进程的资源线程是处理器调度的基本单位...

2021-04-06 22:14:57 31

原创 Spring cloud 通过父工程打包多个子工程

一、背景项目采用springcloud多模块开发(即一个父工程包含多个字工程)。将项目打包部署到服务器,每次都需要进入单个工程进行分别打包,这样做比较耗时,可以通过父子工程来实现一次性打包所有项目。二、聚合的方式一次性打包所有项目1、lz的springboot多模块项目(微服务项目)结构如下:2、修改父工程的pom.xml文件下图中①的部分表示:继承springboot提供的父工程,这段信息之前我是配置在子工程里面的,现在配于父工程的pom.xml文件中,子工程则不需要配置。下图

2021-04-01 22:36:19 150

原创 Linux离线安装gcc等依赖包

一、虚拟机可以连接外网情况直接yum安装yum -y install gcc 二、虚拟机不可以连接外网情况(离线安装)1、首先下载安装包,各种rpm包下载地址:http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/2、lz百度网盘已下载好了gcc相关依赖,可下载链接:https://pan.baidu.com/s/1YKfsLYuq9UUB8HyIfrMuVg 提取码:ol4z 3、将以上安装包上传到linux环境的系

2021-04-01 21:49:46 936

科大讯飞语音识别java版本demo

调用科大讯飞SDK包,语音识别java版本代码示例。示例包括语音听写、语音识别、语音组合三个功能,本人只用到语音听写(即把语音转成文字)

2019-04-25

科大讯飞Msc.jar

科大讯飞SDK包中的msc.jar包,msc 语音功能 需要该jar包的引用。科大讯飞Msc.jar

2019-04-11

ojdbc(6、8、14版本jar)

ojdbc(6、8、14版本jar)

2020-12-24

轮播图代码

轮播图代码

2016-11-25

ueditor编辑器

ueditor编辑器

2016-12-26

docker+k8s.txt

一份很不错的学习k8s的视频,包括docker一部分和k8s一部分,希望有需要的人能够下载下来一份很不错的学习k8s的视频,包括docker一部分和k8s一部分,希望有需要的人能够下载下来

2019-06-19

微信小程序 实例汇总 完整项目源代码

微信小程序 实例汇总 完整项目源代码

2016-12-21

微信小程序开发工具

小程序开发工具

2016-12-22

redis-3.2.4.tar

redis数据库安装包

2016-12-22

RSS订阅例子

RSS订阅

2016-11-25

kindeditor编辑器

kindeditor编辑器

2016-12-26

dubbo-admin-2.5.3.war

dubbo-admin-2.5.3.war ,dubbo管理控制台所需的dubbo-admin-2.5.3.war

2017-10-19

apache-tomcat-7.0.57.tar.gz

java开发技术所需的 tomcat7版本的apache-tomcat-7.0.57.tar.gz包

2017-10-19

zookeeper-3.4.6.tar.gz

java技术所需的 zookeeper-3.4.6版本的注册中心tar包 。

2017-10-19

小志的博客的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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