• 等级
  • 100283 访问
  • 96 原创
  • 2 转发
  • 43185 排名
  • 28 评论
  • 18 获赞

java并发编程4.2AQS详解

环境:jdk1.8摘要说明:上一章节我们主要阐述了显示锁的使用详解本章节主要阐述下AQS原理及其使用:1.模版方法设计模式2.AQS详解3.AQS实战步骤:1.模版方法模式模版方法设计模式本质上就是在父类中编排主流程,将步骤实现延迟到子类去实现。主类中需要定义各个步骤的方法但不具体实现,但主类中还需要规定框架方法来组合这些方法来确定主流程;举例:消息...

2019-03-05 16:52:09

java并发编程4.1显示锁及其与synchronized关键字的比较

环境:jdk1.8摘要说明:上一大章节主要阐述了原子操作CAS及常用的原子操作类本章节主要讲述显示锁的使用及显示锁和synchronized关键字的比较锁是一种通过多个线程控制对共享资源的访问的工具。通常,锁提供对共享资源的独占访问:一次只有一个线程可以获得锁,对共享资源的所有访问都要求先获得锁。然而,一些锁可能允许对共享资源的并发访问,例如ReadWriteLock的读锁。...

2019-03-01 16:01:48

java并发编程3.1原子操作CAS

环境:jdk1.8摘要说明:上一大章节主要阐述了常用的并发工具类的的使用:本章节主要讲述原子操作CAS及常用的原子操作类;CAS是CompareAndSet的缩写,是以一种无锁的方式实现并发控制。在实际情况下,同时操作同一个对象的概率非常小,所以多数加锁操作做的是无用功,CAS以一种乐观锁的方式实现并发控制。步骤:1.CAS之前有写过一个文章《高并发编程之高并发场...

2019-02-20 10:56:32

java并发编程2.3并发工具类——Semaphore、Exchange、FutureTask

环境:jdk1.8摘要说明:上一章节主要讲述两个工具类CountDownLatch和CyclicBarrier使用及比较;本章节主要讲述其他几个并发工具类的使用:Semaphore:主要用来控制同时访问某个特定资源的线程数量,用在流量控制;Exchange:主要用来进行两个线程间的数据交换;FutureTask:前面已经介绍过,主要结合Callable、Future来进行线...

2019-02-18 16:06:01

java并发编程2.2并发工具类——CountDownLatch和CyclicBarrier使用及比较

从本章节主要讲述两个工具类CountDownLatch和CyclicBarrier使用及比较;CountDownLatch:一种同步辅助工具,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成;CyclicBarrier:一种同步辅助工具,它允许一组线程相互等待到达共同的屏障点

2019-02-02 15:24:18

java并发编程2.1并发工具类——Fork-Join

环境:jdk1.8摘要说明:上一大章节主要讲述线程的基础概念,线程间的共享及协作;从本章节开始会介绍并发编程的常用工具类;本章节主要介绍Fork-Join基础概念及用法步骤:1.Fork-Join基础概念什么是分而治之?分而治之的基本思想就是将大任务分割成小任务,最后将小任务聚合起来得到结果。Fork-Join就是基于分而治之思想而设计的,即规模为N的问题,N&...

2019-02-01 17:21:03

java并发编程1.4线程间的协作——wait、notify/notifyAll等

环境:jdk1.8摘要说明:上两章我们主要讲了线程共享的相关关键字的使用方法;本章节主要讲述线程协作的相关概念及一些关键字用法线程间的协作:假设A线程不满足某个业务条件进行不下去,线程处于等待中;即此时需要等待B线程进行相关操作满足A线程的业务员条件;如果需要A不停的轮询去查询条件是否满足就显得笨重及不高效,此时如果B满足条件后通知A线程停止等待才最为高效快捷,这就是线程间的协...

2019-01-30 18:07:13

java并发编程1.3线程间的共享——volatile,ThreadLocal

环境:jdk1.8摘要说明:上一张介绍了synchronized关键字的使用;本章节主要讲述java内存中的一些相关概念及volatile,ThreadLocal关键字的用法;步骤:1.基础概念本章节我们主要介绍java内存模型的三大特征:原子性,可见性,有序性;原子性:原子是世界上的最小单位,具有不可分割性。比如a=0;(a非long和double类型)这个操...

2019-01-29 17:23:33

java并发编程1.2线程间的共享——synchronized

环境:jdk1.8摘要说明:上节我们主要介绍了线程的基础概念,启动停止方式,状态及常用方法多个线程同时进行时,往往需要共享资源,如变量;本节主要讲述线程间共享的关键词synchronized的使用;synchronized关键字:代表这个方法加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C、D等)正在用这个方法(或者该类的其他同...

2019-01-21 16:43:16

java并发编程1.1线程基础

摘要说明:本篇文章首先带领大家了解下一些基础概念,接着介绍下java常用的线程启动方式;步骤:1.基础概念CPU核心数和线程数的关系核心数:线程数=1:1 ;使用了超线程技术后--->1:2;这里面指的是同一时刻cpu执行线程数CPU时间片轮转机制又称RR调度,会导致上下文切换;时间片轮转法(Round-Robin,RR)主要用于分时系统中的进程调度。为了实现...

2019-01-21 10:14:53

nginx学习1.8 配置https

环境:centos6/7,nginx-1.9.15.摘要说明:上一篇主要讲述nginx下如何配置跨域、缓存、压缩;本章节主要讲述nginx的https配置;步骤:1.https配置首先我们要确定你的nginx安装了ssl模块:#./nginx-V确认后需要有证书公钥和私钥,上传到服务器上;接着就是配置https端口443: server{...

2019-01-16 16:46:54

nginx学习1.7 nginx配置跨域(CORS)、防盗链(valid_referers)、缓存(expires)、压缩(gzip)

环境:centos6/7,nginx-1.9.15.摘要说明:上一篇主要讲述nginx下的常用内置变量及if语句;本章节主要讲述nginx的如何配置跨域、缓存、压缩;步骤:1.跨域场景:首先我们举例看看什么叫做跨域:当我们加载static.xxxx.com的页面之后,在js中调用www.xxxx.com接口,这个时候就叫做跨域;因为请求的主体已发生改变,浏览器拒...

2019-01-15 18:03:15

nginx学习1.6 nginx内置变量及if语句

环境:centos6/7,nginx-1.9.15.摘要说明:上一篇主要讲述nginx下的负载均衡的配置;本章节主要讲述nginx的常用内置变量及if语句;步骤:1.echo和setechonginx有个模块echo,是在nginx程序上扩展了echo输出字符的功能,对于调试很方便;参考文档:链接echo默认是不安装的,编译时会报nginx:[emerg]...

2019-01-15 18:02:40

nginx学习1.5 nginx负载均衡配置

环境:centos6/7,nginx-1.9.15.摘要说明:上一篇主要讲述nginx下的一些常用语法;本章节主要讲述nginx的三种负载均衡策略及其相关配置:步骤:1.upstream首先我们看一个负载均衡upstream的配置示例:upstreambackend{serverbackend1.example.comweight=5;ser...

2019-01-14 17:39:29

杂记之@Asyns异步调用的正确打开姿势

环境:spring;springboot摘要说明:项目开发过程中往往会出现需异步调用的情况,以便提高系统的响应速度或者提高部分业务的处理时间;但异步调用需要根据系统的承受能力做好相关配置,而不是放任随意使用;如系统批跑5000条数据做相关业务处理;若循环异步处理,则很可能将数据库给压垮;所以这里需要控制系统异步线程池的大小及线程池的满额执行策略;步骤:1.@Asy...

2019-01-14 14:59:01

nginx学习1.4 nginx常用语法之root、alias、proxy_pass、rewrite等

环境:centos6/7,nginx-1.9.15.摘要说明:上一篇主要讲述nginx下server节点中location进行详细的解析;本章节主要讲述nginx其他常用语法:步骤:1.root、alias及indexroot语法:rootpath 默认值:roothtml 使用字段:http,server,location,location中的if字...

2019-01-09 17:26:19

nginx学习1.3 nginx下location配置详解

环境:centos6/7,nginx-1.9.15.摘要说明:上一篇我们对配置文件的所有配置做了整体的详解,及日志的配置及分割本篇主要讲述nginx下server节点中location进行详细的解析,后续主要配置工作也在于此;步骤:1.虚拟主机从上篇我们可以看到主配置文件下nginx.conf的整体结构如下:其中main,event,http都为全局配置;而se...

2019-01-09 09:37:59

nginx学习1.2 nginx主要配置详解

环境:centos6/7,nginx-1.9.15.摘要说明:上一篇我们介绍的nginx的基础概念,安装、目录及启停,链接;本篇主要讲述nginx的主要配置结构和各配置详解;步骤:1.配置文件整体结构:首先我们基于nginx-1.9,15上一个默认nginx配置如下:#usernobody;worker_processes1;#error_log...

2018-12-19 08:53:36

nginx学习1.1 nginx简介及安装使用

环境:centos6/7摘要说明:Apache仍然是时长占用量最高的web服务器,据最新数据统计,市场占有率目前是50%左右。主要优势在于一个是比较早出现的一个Http静态资源服务器,同时又是开源的。所以在技术上的支持以及市面上的各种解决方案都比较成熟。Apache支持的模块非常丰富。Nginx是俄罗斯人编写的一款高性能的HTTP和反向代理服务器,在高连接并发的情况下,它能够支持高...

2018-12-17 15:32:07

Tomcat配置ssl证书(.pfx)实现HTTPS

摘要说明:本篇文章主要讲述如何给Tomcat服务器使用.pfx证书配置https协议步骤:.pfx证书主要包括两部分,一个为.pfx文件,一个为密钥;首先我们将.pfx文件上传到服务器,本篇文章为了演示相对路径将.pfx文件上传到tomcat下新建文件夹cert下文件上传成功后需修改tomcat目录conf下的server.xml,添加443端口配置,配置如下:&lt...

2018-11-21 09:39:33

叶落自飘零

我就是我,是颜色不一样的烟火!
关注
  • 计算机软件/IT/JAVA
  • 中国 上海 浦东新区
奖章
  • 专栏达人
  • 持之以恒