摘要: 前篇博客【死磕Java并发】—–深入分析volatile的实现原理 中已经阐述了volatile的特性了: 下面LZ就通过happens-before原则和volatile的内存语义两个方向介绍volatile。 volatile与happens-before 在这篇博客【死磕Java并发】—–Ja 阅读全文
posted @ 2018-04-12 11:35 Call_Me_Tiger_Fu 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 在上篇博客(【死磕Java并发】—–深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性的问题。那么我们正确使用同步、锁的情况下,线程A修改了变量a何时对线程B可见? 我们无法就所有场景来规定某个线程修改的变量何时对其他线程可见 阅读全文
posted @ 2018-04-12 11:34 Call_Me_Tiger_Fu 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 在执行程序时,为了提供性能,处理器和编译器常常会对指令进行重排序,但是不能随意重排序,不是你想怎么排序就怎么排序,它需要满足以下两个条件: 如果看过LZ上篇博客的就会知道,其实这两点可以归结于一点:无法通过happens-before原则推导出来的,JMM允许任意的排序。 as-if-serial语 阅读全文
posted @ 2018-04-12 11:34 Call_Me_Tiger_Fu 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上下文的切换和调度。Java语言规范对vo 阅读全文
posted @ 2018-04-12 11:31 Call_Me_Tiger_Fu 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上下文的切换和调度。Java语言规范对vo 阅读全文
posted @ 2018-04-12 11:30 Call_Me_Tiger_Fu 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 问题一:行内onclick触发的函数放在$(funtion(){})内报错,错误代码如下: 运行之后报错:say is not defined $(function{})的作用类似于window.onload,都是网页加载完成在执行相应的代码。删去$(function(){})之后程序运行正常,看来 阅读全文
posted @ 2018-01-18 14:35 Call_Me_Tiger_Fu 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 我们在用缓存的时候,不管是Redis或者Memcached,基本上会通用遇到以下三个问题: 缓存穿透 缓存并发 缓存失效 一、缓存穿透 注:上面三个图会有什么问题呢? 我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时 阅读全文
posted @ 2017-12-27 11:51 Call_Me_Tiger_Fu 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 负载均衡在系统架构中是一个非常重要,并且是不得不去实施的内容。因为负载均衡是对系统的高可用、网络压力的缓解和处理能力扩容的重要手段之一。我们通常所说的负载均衡都是指服务端负载均衡,其中分为硬件负载均衡和软件负载均衡。硬件负载均衡主要通过在服务器节点之间安装专门用于负载均衡的设备,比如F5等;而软件负 阅读全文
posted @ 2017-12-22 15:26 Call_Me_Tiger_Fu 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 正向代理的概念 正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器这个代理服务器呢,他能访问那个我不能访问的网站于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容代理服务器去取回来,然后返回给我 从网站的角度,只在代理 阅读全文
posted @ 2017-12-22 15:03 Call_Me_Tiger_Fu 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 1、下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 下载版本:我这里选择的5.6.33,通用版,linux下64位 也可以直接复制64位的下载地址,通过命令下载:wget http://dev.mysql.com/get 阅读全文
posted @ 2017-12-21 18:03 Call_Me_Tiger_Fu 阅读(162) 评论(0) 推荐(0) 编辑