- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 VisualBox虚拟机CentOS使用仅主机(Only-Host)+桥接网路联网并固定IP地址
使用仅主机(only-host)+桥接网络上网本机环境:笔记本电脑使用路由器上网且ip由路由器来分配,虚拟机为centos7本地真实无限网卡虚拟网卡思路:使用仅主机让本机和虚拟机来通讯并固定ip地址然后使用桥接网络让路由器来分配ip地址给我的虚拟机开干!1、配置虚拟机软件上的网卡桥接网卡桥接到我真实的网卡上面,仅主机就是到虚拟网卡2.进入虚拟机配置网卡进入网卡目录cd /etc/sysconfig/network-scriptsls目前我有2张网卡
2020-09-02 19:14:51 293
原创 盘点一下github上面比较实用的仓库
程序员找工作的黑名单https://github.com/shengxinjing/programmer-job-blacklist一些坑b公司最好的java笔记https://github.com/Snailclimb/JavaGuide没有之一,究极推荐,也适合面试前补习SpringBoot全家桶的事例工程https://github.com/wuyouzhuguli/S...
2019-10-28 14:57:00 530
原创 java web解决用户重复提交
先理一下用户重复提交出现的问题假设有一个用户想要上传一件商品但是因为网速慢用户疯狂点击上传按钮导致发出多个请求到达了服务端,然后服务端把这些请求都送达到了关系数据库,最后可能重复上传商品,也可能造成关系数据库压力过大。解决办法1、单机环境使用一个本地的缓存池类似KV结构的数据结构(这个推荐google开源的guava),当一个用户在一个接口发送请求时候,生成一个关于这个用户和这个接口的...
2019-10-23 14:20:34 278
原创 java 并发HelloWorld之AQS HelloWorld
今天聊一聊什么是AQS,并用他实现一个简单的锁。它是java.util.concurrent.locks.AbstractQueuedSynchronizer是一个抽象类,juc很多工具都是基于它的,它是juc的核心它实现的是非系统级别的锁的一个框架有别于synchronized关键词,系统级别的锁(synchronized)对于锁的竞争切换的时候消耗资源比较大因为要调用系统级别的api还要...
2019-06-09 20:40:37 169
原创 java多线程之线程安全-构造函数捕获模式
在java并发编程实战p58页的脚注的时候没看懂,然后查百度,终于理解了,所以在这里记录一下脚注:如果将拷贝构造函数实现为this(p.x,p.y),那么会产生竞态 条件,而私有构造函数则可以避免这种竞态条件.这是私有构造函数捕获模式的一个实例。先上代码public class Main { public static void main(String[] args) { fina...
2019-04-05 17:56:32 602 7
原创 java多线程之原子性
1.1原子性假定有两个线程A和B,他们要操作一个变量C,当A操作C的时候B不操作或者说是无法操作B,那么就说名 操作C的操作是原子的,也是线程安全的例子:UnSafeprivate static int anInt = 1; public static void main(String[] args) { new Thread(()->{anInt++;})....
2019-04-04 19:27:39 530
原创 java多线程之线程封闭
当访问公共变量的时候就需要同步才能线程安全。线程封闭就可以免去同步操作就可以实现线程安全。常见的应用场景:在JDBC中的Connection对象并不是线程安全的。在典型的Servlet应用中,请求是同步的,请求直接使用用Connection对象访问数据库,使用完再返回给链接池给下一个请求使用,并且在链接返回之前不会给其他线程使用。这种方式就叫做线程封闭技术java里面推荐使用线程封闭方法...
2019-04-04 19:26:45 242 1
原创 java多线程之死锁wait()notify()notifyAll()锁池等待池错误的唤醒
死锁如何出现: 互相拿到对方的锁,循环等待,或者出现全体对象wait,没有人唤醒他们,俗称全员等待等待再等待。互相拿到对方锁的例子public class DieLock { static void fun1(){ while (true){ synchronized (String.class){ Sys...
2019-04-04 19:26:02 966
原创 java多线程之可重入
重入的一种实现方法是,为每一个锁加一个计数,但这个数等于0时,就代表没有任何线程获取这个锁,当这个锁被获取时就加1,如果再次被这个线程获取这个锁就再加1,这样就可以实现锁的嵌套synchronized是JVM提供给我们的一个同步操作的关键词,如果不是可重入锁下面的例子必然发生死锁public class ReentryLock { public static synchronized...
2019-04-04 19:25:06 226
原创 java多线程之简单的线程池
package com.guo.threadreadbattcn;import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.concurrent.Executor;import java.util.str...
2019-04-04 19:24:20 123
原创 java多线程之对象发布this引用溺出
java并发编程实践书中,this引用逃逸("this"escape)是指对象还没有构造完成,它的this引用就被发布出去了。这是危及到线程安全的,因为其他线程有可能通过这个逸出的引用访问到“初始化了一半”的对象(partially-constructed object)。这样就会出现某些线程中看到该对象的状态是没初始化完的状态,而在另外一些线程看到的却是已经初始化完的状态,这种不一致性是不确定的...
2019-04-04 19:23:01 584
原创 java多线程之volatile内存可见性
操作系统的内存大致可以看成主存(内存条上的内存),cpu的缓存。当多个核心访问主存中的变量时,需要把主存中的值拷贝的每个核心的cpu缓存上,每个核心的缓存之间互相是不可见的,当修改的时候需要把值刷新到主存上其他的线程才看的到,在底层其实还有更多的操作,我只是简单的说了一下。JVM已经帮我们封装了很多操作,但还不够所有有了 volatile 这个关键词,可以保持变量的可见性使用同步锁的方法来操作...
2019-04-04 19:21:32 224
原创 Java NIO Zero Copy 零拷贝分析
上图描述的是不使用零拷贝,从磁盘读数据然后进行一个循环之后再写到磁盘或者网络的操作首先我们JVM所在的用户空间(User Space)调用一个读的native方法,它肯定是操作了系统的某些api,向内核控件发送了一个请求,然后就会进行上下文切换到内核空间(Kemel Space) ,然后内核空间就会把我们存在网络上或者说是硬盘里的数据通过一种叫Direct Memory Access读到内核...
2019-03-27 18:06:32 326
原创 java nio基本概念和入门和群聊客户端实例
首先我们先讨论一下nio和我们大家众所周知的bio的区别java.io的核心是流(Stream),是面向流的编程,一个流只能进或者出****,没有有两种功能都有的流,既不存在可以进而且可以出的流。而且java.io是阻塞的,打一个比方把,我们现在的服务器要接收一张图片,而客户端发送的时候因为网络问题,传到一半就传不动了,而这时我们的服务器的read方法是一直阻塞等待客户端继续发送数据的,这种i...
2019-03-25 20:25:48 767 1
原创 做单点登录cookie无法写入的问题,虚拟机的nginx代理到win10的idea ,跨域
作为一个从不笔笔记的人,今天被迫记一个笔记今天再学习springCloud +nginx 的时候做单点登陆,出现cookie无法写入问题先交代一下环境win10 ideacentos7 nginx 1.10.0org.springframework.bootspring-boot-starter-parent2.0.2.RELEASE如图:{使用本地访问cookie...
2018-12-23 02:27:43 1141 1
原创 关于“《T extends Comparable《?super T》》”怎么理解的问题
配图1、只有实现Compareable接口的类或者它的父类实现了才合法2、Comparable<? super T>>: 如果Comparable的下界为T,比如A是父类B是子类,A实现了Comparable,那么传入B时,就可以看成<B extends Comparable< ?super B >>:表示只有B的父类或者自己实现了Compare...
2018-11-25 19:47:01 301
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人