上一页 1 2 3 4 5 6 7 ··· 11 下一页
摘要: java 中Semaphere可类比操作系统信号量,硬件资源如IO、内存、磁盘等都是有固定量的,多个程序需要竞争这些资源,没有资源就需要被挂起。 一、类和方法摘要 构造函数: public Semaphore(int permits):创建具有给定的许可数和非公平的公平设置的 Semaphore。  阅读全文
posted @ 2020-07-29 23:33 纵码万水千山 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 前面我们讲到了synchronized;那么这节就来将lock的功效。 一、locks相关类 锁相关的类都在包java.util.concurrent.locks下,有以下类和接口: | AbstractOwnableSynchronizer | AbstractQueuedLongSynchron 阅读全文
posted @ 2020-07-29 00:20 纵码万水千山 阅读(155) 评论(0) 推荐(0) 编辑
摘要: Callable与Runnable 先说一下java.lang.Runnable吧,它是一个接口,在它里面只声明了一个run()方法: public interface Runnable { public abstract void run(); } 由于run()方法返回值为void类型,所以在执 阅读全文
posted @ 2020-07-28 23:43 纵码万水千山 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。本文主要简单介绍了分布式系统的概念、分布式系统的特点、常用的分布式方案以及分 阅读全文
posted @ 2020-07-22 23:59 纵码万水千山 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经过两个线程操作之后可能i不等于3,而是等于2。因为A和B线程在更新变量i的时候拿到的i都是1,这就是线程不安全的更新操作,通常我们会使用synchronized来解决这个问 阅读全文
posted @ 2020-07-22 23:33 纵码万水千山 阅读(256) 评论(0) 推荐(1) 编辑
摘要: 多个线程访问共享对象和数据的方式 如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做。 如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,有如下两种方式来实现这些Runnable对象之间的数据共享: 阅读全文
posted @ 2020-07-22 22:58 纵码万水千山 阅读(1149) 评论(1) 推荐(1) 编辑
摘要: 为什么用线程池 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率 例如: 记创建线程消耗时间T1,执行任务消耗时间T2,销毁线程消耗时间T3 如果T1+T3>T2,那么是不是说开启一个线程来执行这个任务太不划算了! 正好,线程池缓存线程,可用已有的闲置线程来执行新 阅读全文
posted @ 2020-07-20 23:06 纵码万水千山 阅读(169) 评论(0) 推荐(0) 编辑
摘要: java中的守护程序线程是一个服务提供程序线程,它为用户线程提供服务。 它的生命依赖于用户线程,即当所有用户线程都死掉时,JVM会自动终止该线程。 有许多java守护程序线程自动运行,例如 gc,finalizer 等 通过在命令提示符下键入jconsole来查看所有详细信息。 jconsole工具 阅读全文
posted @ 2020-07-19 23:02 纵码万水千山 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 一、概念 可以将每个线程用到的数据与对应的线程号存放到一个map集合中,使用数据时从这个集合中根据线程号获取对应线程的数据,就可以实现线程范围内共享相同的变量。 二、代码 Runnable中的run()方法里面执行Thread.currentThread()都会对应当前Runnable对应的线程,因 阅读全文
posted @ 2020-07-19 22:50 纵码万水千山 阅读(1019) 评论(0) 推荐(0) 编辑
摘要: 本文讲解CAS机制,主要是因为最近准备面试题,发现这个问题在面试中出现的频率非常的高,因此把自己学习过程中的一些理解记录下来,希望能对大家也有帮助。 什么是悲观锁、乐观锁?在java语言里,总有一些名词看语义跟本不明白是啥玩意儿,也就总有部分面试官拿着这样的词来忽悠面试者,以此来找优越感,其实理解清 阅读全文
posted @ 2020-07-19 22:48 纵码万水千山 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 方式一:全局配置 可以添加阿里云的镜像到maven的setting.xml配置中,这样就不需要每次在pom中,添加镜像仓库的配置,在mirrors节点下面添加子节点: <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus ali 阅读全文
posted @ 2020-07-08 20:40 纵码万水千山 阅读(12546) 评论(0) 推荐(0) 编辑
摘要: Java的volatile关键字在JDK源码中经常出现,但是对它的认识只是停留在共享变量上,今天来谈谈volatile关键字。 volatile,从字面上说是易变的、不稳定的,事实上,也确实如此,这个关键字的作用就是告诉编译器,只要是被此关键字修饰的变量都是易变的、不稳定的。那为什么是易变的呢?因为 阅读全文
posted @ 2020-07-08 00:25 纵码万水千山 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 出处:http://www.zsythink.net/archives/2509 上一篇文章介绍了ansible的基本概念,以及相关的基础配置,我们已经知道,如果想要管理受管主机,则需要将受管主机添加到ansible的管理清单中,当安装ansible以后,会提供一个默认的管理清单,即/etc/ans 阅读全文
posted @ 2020-06-29 00:14 纵码万水千山 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 本篇主要介绍Java多线程中的同步,也就是如何在Java语言中写出线程安全的程序,如何在Java语言中解决非线程安全的相关问题,没错就是使用synchronized. 一、如何解决线程安全问题? 一般来说,是如何解决线程安全问题的呢?基本上所有的并发模式在解决线程安全问题时,都采用“序列化访问临界资 阅读全文
posted @ 2020-06-28 23:44 纵码万水千山 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 我们知道多线程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧。 一、线程基本概念 1 线程:进程中负责程序执行的执行单元(执行路径)线程本身依靠程序进行运行线程是程序中的顺序控制流,只能使用分配给程序的资源和环境2 进程:执行 阅读全文
posted @ 2020-06-20 00:26 纵码万水千山 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 基础概念 ansible是什么? 它是一个"配置管理工具",它是一个"自动化运维工具",如果你没有使用过任何配置管理工具,不要害怕,看完这篇文章,你自然会对ansible有所了解。 ansible能做什么? 正如其他配置管理工具一样,ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重 阅读全文
posted @ 2020-06-19 23:31 纵码万水千山 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 因为项目中会依赖许多jar包,免不得就会有冲突,那怎么解决呢? 使用 mvn dependency:tree 可以看到各个包的依赖关系 [INFO] | +- commons-cli:commons-cli:jar:1.4:compile [INFO] | +- net.sourceforge.cp 阅读全文
posted @ 2020-06-17 09:32 纵码万水千山 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 补充说明 语法 iptables(选项)(参数) 选项 -t, --table table 对指定的表 table 进行操作, table 必须是 raw, nat,filter,mangle 中的一个。如果不指定此选项,默认的是 filter 表。 # 通用匹配:源地址目标地址的匹配 -p:指定要 阅读全文
posted @ 2020-06-16 23:43 纵码万水千山 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 原因是DNS域名解析问题: 添加nameserver即可解决 echo nameserver 8.8.8.8 > /etc/resolv.conf 解释一下DNS服务 DNS(Domain Name System)是域名解析服务器的意思,它在互联网的作用是把域名转换成为网络可以识别的IP地址。当用户 阅读全文
posted @ 2020-06-15 10:06 纵码万水千山 阅读(5638) 评论(2) 推荐(0) 编辑
摘要: 1.安装brctl centos7.6安装使用 yum install bridge-utils ubuntu使用 apt-get install bridge-utils 什么是网桥 网桥是一种在链路层实现中继,对帧进行转发的技术,根据MAC分区块,可隔离碰撞,将网络的多个网段在数据链路层连接起来 阅读全文
posted @ 2020-06-12 16:19 纵码万水千山 阅读(794) 评论(0) 推荐(0) 编辑
摘要: 一、介绍 jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式: jstack [-l] pi 阅读全文
posted @ 2020-06-11 23:34 纵码万水千山 阅读(272) 评论(0) 推荐(0) 编辑
摘要: jps(Java Virtual Machine Process Status Tool) 是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情 阅读全文
posted @ 2020-06-11 23:11 纵码万水千山 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 一、类加载的时机 类的生命周期 类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期包括以下 7 个阶段: 加载 验证 准备 解析 初始化 使用 卸载 验证、准备、解析 3 个阶段统称为连接。 加载、验证、准备、初始化和卸载这 5 个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班 阅读全文
posted @ 2020-06-10 23:48 纵码万水千山 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 问题描述:Caused by: javax.management.InstanceAlreadyExistsException: com.alibaba.druid.pool:name=primaryDataSource,type=DruidDataSource 原因很简单:同一个domain里面的 阅读全文
posted @ 2020-06-10 16:17 纵码万水千山 阅读(290) 评论(0) 推荐(0) 编辑
摘要: Timeout waiting for connection from pool 异常 httpClient大家用到地方会很多,先简单描述一下几个关键配置的意义 httpClient版本为4.5.1 maxTotal:整个连接池的最大支持连接数 defaultMaxPerRoute:当前主机到目的主 阅读全文
posted @ 2020-06-10 00:17 纵码万水千山 阅读(4570) 评论(0) 推荐(0) 编辑
摘要: 出处知乎:https://zhuanlan.zhihu.com/p/58038188 Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快; 2.redis是单线程的,省去了很多上下文切换线程的时间; 3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现 阅读全文
posted @ 2020-06-09 23:27 纵码万水千山 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 使用Spring Boot时,默认情况下,配置DataSource非常容易。Spring Boot会自动为我们配置好一个DataSource。 如果在application.yml中指定了spring.datasource的相关配置,Spring Boot就会使用该配置创建一个DataSource。 阅读全文
posted @ 2020-06-09 23:17 纵码万水千山 阅读(1295) 评论(0) 推荐(0) 编辑
摘要: 类文件结构 JVM 的“无关性” 谈论 JVM 的无关性,主要有以下两个: 平台无关性:任何操作系统都能运行 Java 代码 语言无关性: JVM 能运行除 Java 以外的其他代码 Java 源代码首先需要使用 Javac 编译器编译成 .class 文件,然后由 JVM 执行 .class 文件 阅读全文
posted @ 2020-06-05 23:38 纵码万水千山 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 对象的内存布局 在 HotSpot 虚拟机中,对象的内存布局分为以下 3 块区域: 对象头(Header) 实例数据(Instance Data) 对齐填充(Padding) 对象头 对象头记录了对象在运行过程中所需要使用的一些数据: 哈希码 GC 分代年龄 锁状态标志 线程持有的锁 偏向线程 ID 阅读全文
posted @ 2020-06-05 23:23 纵码万水千山 阅读(145) 评论(0) 推荐(0) 编辑
摘要: JVM 内存结构 Java 虚拟机的内存空间分为 5 个部分: 程序计数器 Java 虚拟机栈 本地方法栈 堆 方法区 JDK 1.8 同 JDK 1.7 比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对 JVM 规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元 阅读全文
posted @ 2020-06-03 23:08 纵码万水千山 阅读(163) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 11 下一页