Wesley13 Wesley13
3年前
java中的锁
记录一下公平锁,非公平锁,可重入锁(递归锁),读写锁,自旋锁的概念,以及一些和锁有关的java类。公平锁与非公平锁:公平锁就是在多线程环境下,每个线程在获取锁时,先查看这个锁维护的队列,如果队列为空或者自身就是等待队列的第一个,就占有锁。否则就加入到等待队列中,按照FIFO的顺序依次占有锁。非公平锁会一上来就试图占
Johnny21 Johnny21
4年前
MySQL 8 复制(二)——半同步复制
目录一、简介直到目前的最新版本为止,MySQL缺省依然使用异步复制策略。简单说所谓异步复制,指的是主库写二进制日志、从库的I/O线程读主库的二进制日志写本地中继日志、从库的SQL线程重放中继日志,这三步操作都是异步进行的。如此选择的主要理由是出于性能考虑,与同步复制相比,异步复制显然更快,同时能承载更高的吞吐量。但异
简
4年前
数组越界导致系统重启的案例
一.问题描述引言一般数组越界问题,往往是涉及多线程并发的情况下,某个或多个临界资源(比如类或对象的成员变量)多线程并发读写而导致的异常。出现这样情况,一般是该保护的地方没有用同步锁保护,或者是用错了同步锁,这类问题比较常规。但本文要分享的案例却是一个方法内的临界资源已被加锁保护的情况下仍然出现的数组越界问题,导致system\server挂掉,手
Wesley13 Wesley13
3年前
解读阿里云oss
摘要:osssdk断点续传功能使用及其相关原理前言 移动端现状 随着移动端设备的硬件水平的不断提高,如今的cpu,内存等方面都大大的超过了一般的pc电脑,因此在现今的程序中,合理的使用多线程去完成一些事情是非常有必要的。 多线程上传的好处我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产
Stella981 Stella981
3年前
Redis为什么使用单进程单线程方式也这么快
Redis采用的是基于内存的采用的是单进程单线程模型的KV数据库,由C语言编写。官方提供的数据是可以达到100000的qps。这个数据不比采用单进程多线程的同样基于内存的KV数据库Memcached差。Redis快的主要原因是:1.完全基于内存2.数据结构简单,对数据操作也简单3.使用多路I/O复用模型第一、二点不细讲,主要
Wesley13 Wesley13
3年前
Java中生产者与消费者模式
 生产者消费者模式首先来了解什么是生产者消费者模式。该模式也称有限缓冲问题(英语:Boundedbufferproblem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同
Wesley13 Wesley13
3年前
Java静态方法和实例方法 java中的数组作为形参传入
Java静态方法和实例方法java中的数组作为形参传入Java虚拟机启动一个Java程序的时候,会诞生一个虚拟机实例,当程序关闭退出时,该实例会消失。如果一个机器上运行着三个Java程序,即有三个Java虚拟机实例Java虚拟机会调用某个初始类的main()方法运行一个Java程序,此方法将会作为程序的初始线程启动,任何线程都是
Wesley13 Wesley13
3年前
Java高并发程序设计(四)—— 无锁
一、无锁类的原理详解无锁的概念就是无障碍运行,无障碍是指所有的线程都能进入临界区,无锁在无障碍的基础上加上了一条就是每次竞争必然有一条能够胜出。理论上无障碍有可能线程都失败,所以无锁更切实可行,但实践上无障碍和无锁差不多。(一)CAS(CompareAndSwap)CAS算法的过程是这样的,它包含三个参数CAS(V,E,N)。V表示要更新的变
Stella981 Stella981
3年前
JVM类加载
运行时数据区java虚拟机定义了若干种程序运行时使用到的运行时数据区1.有一些是随虚拟机的启动而创建,随虚拟机的退出而销毁2.第二种则是与线程一一对应,随线程的开始和结束而创建和销毁。java虚拟机所管理的内存将会包括以下几个运行时数据区域!(http://static.oschina.net/uplo
Easter79 Easter79
3年前
SpringBoot2.0笔记四
当搞全局捕获异常时可以使用到AOP技术,采用异常通知,也可以用AOP搞日志记录在类上面加上@EnableAsyns注解开启异步调用@Asyns,在方法上加上此注解,可以实现异步调用,底层是多线程技术,相当于加上这个注解的方法重新开启了一个单独的线程正常情况下,当A方法调用B方法时,是需要B方法执行完成,有返回结果时等待返回。这是顺序的方式从上到下