摘要:
1.引入POM 2.主要配置2个类 2.1 一个是继承AuthorizationServerConfigurerAdapter package com.zbiti.anvil.maintain.auth.config;import org.springframework.beans.factory. 阅读全文
摘要:
1.linux系统安装rabbitmq 1.首先安装erlang 去这个网址 http://www.rabbitmq.com/releases/ 下载, 因为linux是centos6,可以用 uname -a 查看linux信息 我这边是el7,所以我下载是的 可以用wget http://www 阅读全文
摘要:
这个里面引用了外表的jia包,所以我们要先把那个jar maven install 一下,不让找不到这个jar包 阅读全文
摘要:
代码块就不用synchronized 修改方法,在方法里面用。 比如我现在2个线程都访问MyThreadTest3对象的test()方法,在上面的for循环里面2个线程都能同时访问。 如果A线程先访问到下面代码块,那么B线程就要等待A线程结束之后在访问下面的代码块。 所以能够知道 1.A线程访问sy 阅读全文
摘要:
1.为什么要用synchronized,因为在多线程的情况下,会读取脏数据。 为什么会有读脏数据呢,他的定义是:在多线程的情况下,对同一个对象的实例进行并发的访问,如果不做同步处理的话,那就有可能读取脏数据。 比如下图中,启动了2个线程都对MyThreadTest t 这个对象去访问。因为要在线程里 阅读全文
摘要:
1.start() 启动 2.isAlive() 是否活动这,只有在start之后,在run方法走完之后,是true 3.state() 线程状态 4.getPriority() 获取线程优先级,默认是5,线程默认优先级为5,如果不手动指定,那么线程优先级具有继承性,比如线程A启动线程B,那么线程B 阅读全文
摘要:
有2个方式 1.继承Thread,第2实现Runnable接口,但是我们建议用实现接口的方式,因为继承只能单继承,实现可以实现多个接口。 下面的是启动线程的例子。 线程状态: 1.新建状态NEW : 就是线程被new出来,还没有start 2.可运行状态RUNNABLE 线程已经start了,但是没 阅读全文
摘要:
Vector 他的实现原理和ArrayList,只不过在增删查改的时候,加了锁标记。 Vector 不是绝对的线程安全。 比如线程有现在A和B,同时add的话,因为add方法加了锁标记synchronized,所以如果A先拿到了这个锁,这个锁就是这个对象的实例,然后B必须要等待,等A释放锁之后,会去 阅读全文
摘要:
ashMap的存储接口是底层有1个Node<K,V>[] table数组,然后根据key的hash值找到定位的下标,然后存到数组里面。如何key的hash值是一样的,但是value不一样的话,他添加的节点就是Node链表的下一个节点。 所以hashMap 查询和删除比较快,他直接根据key找到has 阅读全文
摘要:
CopyOnWriteArrayList 也是实现List接口他是在concurrent 包里面,所以他是线程安全的,其他的基本和ArrayList很想。他线程安全是用ReentrantLock 实现的,他内部有一个ReentrantLock对象,然后在增删改的时候都操作这个锁对象,所以他在多线程里 阅读全文