并发性是一系列性能技术,专注于减少等待 如果你的程序中的一个任务由于程序控制之外的某些条件(通常是I/O)而无法继续,我们会说任务或线程阻塞 进程和线程 线程的调度: 分时调用 所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间 抢占式调度 优先让优先级较高的线程使用CPU,如果线程的 ...
分类:
编程语言 时间:
2020-06-25 15:40:37
阅读次数:
69
一、多线程1.概述多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。就是在单个程序中同时运行多个线程来完成不同的工作。2.并发与并行并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。3.程序、进程与多线程1)程序Java源程序和字节码文件被称为“程序”(Program),是一个静态的概念。2)进程是指一个内存中运行的
分类:
编程语言 时间:
2020-06-24 10:35:23
阅读次数:
66
一.sql语句优化 (1)mysql 执行流程 客户端: 发送连接请求,然后发送增删改查sql语句进行执行 服务端: 1.连接层:提供和客户端连接的服务,在tcp协议下, 提供多线程并发的技术,让多个用户登录到mysql中. show processlist; 查看所有登录到mysql的用户进程 2 ...
分类:
编程语言 时间:
2020-06-24 00:32:56
阅读次数:
105
Rocksdb事务隔离性指的是多线程并发事务使用时候,事务与事务之间的隔离性,通过加锁机制来实现,本文重点剖析Read Commited隔离级别下,Rocksdb的加锁机制。 Rocksdb事务相关类族 Rocksdb的事务相关的类图如下图所示。主要有两个类族,Transaction和DB,默认采用 ...
分类:
数据库 时间:
2020-06-19 23:07:03
阅读次数:
69
本文源码:GitHub·点这里||GitEE·点这里一、资源和加锁1、场景描述多线程并发访问同一个资源问题,假如线程A获取变量之后修改变量值,线程C在此时也获取变量值并且修改,两个线程同时并发处理一个变量,就会导致并发问题。这种并行处理数据库的情况在实际的业务开发中很常见,两个线程先后修改数据库的值,导致数据有问题,该问题复现的概率不大,处理的时候需要对整个模块体系有概念,才能容易定位问题。2、演
分类:
编程语言 时间:
2020-06-19 10:32:11
阅读次数:
61
Java NIO 由三个核心组件构成:Selector (选择器), Channel(通道) , Buffer (缓冲区)。 虽然NIO体系还是有其它组件,比如:Pipe,FileLock等 它们只是与三个组件结合实际使用类。 三者关联关系: 一个线程对应一个selector, 一个selector ...
分类:
编程语言 时间:
2020-06-19 00:56:13
阅读次数:
76
什么是分布式锁??在JVM中,在多线程并发的情况下,我们可以使用同步锁或Lock锁,保证在同一时间内,只能有一个线程修改共享变量或执行代码块。但现在我们的服务都是基于分布式集群来实现部署的,对于一些共享资源,在分布式环境下使用Java锁的方式就失去作用了。?使用数据库实现一个分布式锁比较简单易懂,直接基于数据库实现就行了,不需要再引入第三方中间件,所以这是很多分布式业务实现分布式锁的首选。但是数据
分类:
其他好文 时间:
2020-06-18 01:37:17
阅读次数:
56
首先,分布式锁和我们平常讲到的锁原理基本一样,目的就是确保在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。 在一个进程中,也就是一个jvm或者说应用中,我们很容易去处理控制,在jdk java.util并发包中已经为我们提供了这些方法去加锁,比如synchronized关键字或者 ...
分类:
其他好文 时间:
2020-06-14 20:57:35
阅读次数:
55
一、等待唤醒机制 1. 线程间通信 概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。 为什么要处理线程间通信: 多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行, 那么多线程之间需要一些协调通信,以此来 ...
分类:
编程语言 时间:
2020-06-13 19:14:21
阅读次数:
49
在多线程并发的情况下,单个节点内的线程安全可以通过synchronized关键字和Lock接口来保证。 synchronized和lock的区别 Lock是一个接口,是基于在语言层面实现的锁,而synchronized是Java中的关键字,是基于JVM实现的内置锁,Java中的每一个对象都可以使用s ...
分类:
其他好文 时间:
2020-06-10 19:24:18
阅读次数:
54