线程 架构 原因redis

线程池

### 为什么使线程池 java的线程对应是操作系统级别的线程调用,不断的或无限制的启停线程是对系统资源的一种消耗也会增加系统的不稳定性。同时很多个线程间的运行上下文切换也会降低实际系统的性能。在对一些大量耗时较小的任务不断的启停线程会降低性能。这个时候就比较适合使用线程池。线程池在池中维护一定的工 ......
线程

redis学习十四:redis持久化之RDB

持久化技术:把内存中数据最终写入磁盘,RDB和AOF 为什么需要:防止服务器宕机缓存数据都没有了 RDB:RDB持久性以指定的时间间隔执行数据集的时间点快照(实现类似照片记录效果的方式,就是把某一时刻的数据和状态以文件形式写到磁盘上,也就是快照。这样一来即使故障宕机,快照文件也不会丢失,数据的可靠性 ......
redis RDB

Redis分片集群-故障转移

为了演示故障转移,我们可以先通过watch命令查看某台节点信息监控整个集群状态: watch redis-cli -p 9001 cluster nodes 接着我们让某台节点宕机,执行命令:redis-cli -p 9002 shutdown,回车。 可以发现控制台监控到9002已失去连接。等待一 ......
集群 故障 Redis

Bert Pytorch 源码分析:五、模型架构简图

注意力层: ``` 输入 -> LLQ -> @ -> /√ES -> softmax -> @ -> LLO -> Dropout -> 输出 | ↑ ↑ + > LLK + | | | + > LLV + ``` FFN 层: ``` 输入 -> LL1 -> GELU -> Dropout - ......
简图 架构 源码 模型 Pytorch

redis学习十三:数据类型命令及落地运用 (bitfield)

redis位域bitfield:将redis字符串看成一个由二进制组成的数组,并且对这个数组中任意偏移进行访问 1.获取hello的ascall码值图中分别对应h,e,l i有符合,u没符号 更改对应的值 2.什么都不说情况下是循环溢出:wrap使用回绕方法处理有符号整数和无符号整数的溢出情况 sa ......
bitfield 命令 类型 数据 redis

pmm版本1监控redis

环境: OS:Centos 7 PMM:版本1 注意:如下方法只适用于pmm版本1,pmm2好像不支持. 1.下载redis_exporterwget https://github.com/oliver006/redis_exporter/releases/download/v1.3.5/redis ......
版本 redis pmm

2、多线程锁

# 多线程锁 ## 乐观锁与悲观锁 ​ 悲观锁:认为 在使用数据的时候一定会有线程来修改数据,因此在获取数据的时候会先加索,确保数据不会被别的线程修改 ​ synchronized和Lock的实现类都是悲观锁 ​ 使用场景:适合操作写多的场景,**先加锁**可以保证写操作时数据正确,显示锁定后**再 ......
线程

3、LockSupport与线程中断

# LockSupport与线程中断 ## 线程中断 ​ 首先 ​ 一个线程不应该由其他线程来强制中断或停止,而是***应该由线程自己自行停止***,自己来决定自己的命运。所以,Thread.stop,Thread.suspend, Thread.resume 都已经被废弃了。 ​ 其次 ​ 在Ja ......
线程 LockSupport

Redis分片集群-集群伸缩

redis-cli --cluster提供了很多操作集群的命令,可以通过下面方式查看: redis-cli --cluster help执行如下: 比如,添加节点的命令: new_host代表需要添加的节点ip, exitsting_host代表已经存在的主机IP,也即集群中已经有的,为什么需要知道 ......
集群 Redis

单体架构、分布式架构与微服务的区别

一、优缺点对比 优点 缺点 案例 单体架构 架构简单、部署成本低 高度耦合(维护困难、升级困难)、扩展性差 学生管理系统 分布式架构 松耦合(服务耦合)、扩展性好(利于升级和扩展) 架构复杂(服务调用关系复杂)、难度大 京东、淘宝 微服务 服务拆分粒度更小、服务更独立、耦合度更低 架构非常复杂、运维 ......
架构 单体 分布式

解决redis从服务器未配置主服务器密码导致数据未同步&磁盘饱满问题

## 问题前置场景 本人前几天买了一台2核4G+40G磁盘空间的云服务器用来学习使用,在服务器上安装了docker。为了学习redis主从架构,使用docker-compose部署了一主二从三台redis服务,部署完成之后测试发现从服务器并没有同步主服务器的数据,查看配置文件没有看出来什么问题,进入 ......
服务器 磁盘 密码 数据 问题

保证线程安全的10个小技巧

前言 对于从事后端开发的同学来说,线程安全问题是我们每天都需要考虑的问题。 线程安全问题通俗的讲:主要是在多线程的环境下,不同线程同时读和写公共资源(临界资源),导致的数据异常问题。 比如:变量a=0,线程1给该变量+1,线程2也给该变量+1。此时,线程3获取a的值有可能不是2,而是1。线程3这不就 ......
线程 技巧

【FAQ】关于华为地图服务定位存在偏差的原因及解决办法(二)——仅适用于Location 6.7.0.300及之后的版本

### 一、 问题描述: 华为地图服务“我的位置”能力,在中国大陆地区,向用户展示他们在地图上的当前位置与用户的实际位置存在较大的偏差。 具体差别可以查看下方的图片/视频: ![](https://oscimg.oschina.net/oscnet/up-aa47491b6990a66b788aa6 ......
偏差 Location 原因 版本 办法

浅析 Jetty 中的线程优化思路

本文介绍了 Jetty 中 ManagedSelector 和 ExecutionStrategy 的设计实现,通过与原生 select 调用的对比揭示了 Jetty 的线程优化思路。Jetty 设计了一个自适应的线程执行策略(EatWhatYouKill),在不出现线程饥饿的情况下尽量用同一个线程... ......
线程 思路 Jetty

SimpleDateFormat 线程不安全!使用DateTimeFormatter

1、报错原因: (1)、SimpleDateFormat 是线程不安全的 (2)、代码想把格林威治时间转换成yyyy-MM-dd HH:mm:ss 报错 Exception in thread :java.lang.NumberFormatException: For input string: " ......

RESTful API(Representational State Transfer API)是一种设计和构建网络应用程序的软件架构风格。它是一种基于HTTP协议的API设计理念,旨在实现系统的可伸缩性、简洁性、可靠性和可扩展性。

RESTful API(Representational State Transfer API)是一种设计和构建网络应用程序的软件架构风格。它是一种基于HTTP协议的API设计理念,旨在实现系统的可伸缩性、简洁性、可靠性和可扩展性。 RESTful API 的设计原则可以概括为以下几点: **资源* ......

原子能力业务化网关架构设计之功能需求

原文合集地址如下,有需要的朋友可以关注 [本文地址](https://mp.weixin.qq.com/s?__biz=MzI5MjY4OTQ2Nw==&mid=2247484246&idx=1&sn=9e6cea35c505b608b30596dc8b626d3d&chksm=ec7cc002db ......
网关 原子 架构 需求 能力

java实际开发中接口文档是自己写还是架构师写?

软件工程的两种方法下,由后端决定接口都是不对的。 第一种软件工程的方法:瀑布模型,自顶而下,逐步细化。 接口会变,但是接口要提前设计。接口不是后端开发完成之后才“自然”产生的,那不是自然,而是无序。 **前后端分离的开发,应该是面向“API”的开发。API的设计并不能由前端或后端一方决定或主导,而是 ......
架构 接口 实际 文档 还是

死锁面试题(什么是死锁,产生死锁的原因及必要条件)

什么是死锁? 所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 因此我们举个例子来描述,如果此时有一个线程A,按照先锁a再获得锁b的的顺序获得锁,而在此同时又有另外一个线程B,按照先锁b再锁a的顺序获得锁。如下图所示: 产 ......
条件 原因

Linux多线程10-死锁

有时,一个线程需要同时访问两个或更多不同的共享资源,而每个资源又都由不同的互斥量管理。当超过一个线程加锁同一组互斥量时,就有可能发生死锁。 两个或两个以上的进程在执行过程中,因争夺共享资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁。 死锁的 ......
线程 Linux 10

Linux多线程09-互斥锁

- 为避免线程更新共享变量时出现问题,可以使用互斥量(mutex 是 mutual exclusion的缩写)来确保同时仅有一个线程可以访问某项共享资源。可以使用互斥量来保证对任意共享资源的原子访问。 - 互斥量有两种状态:已锁定(locked)和未锁定(unlocked)。任何时候,至多只有一个线 ......
线程 Linux 09

Linux多线程11-读写锁

当有一个线程已经持有互斥锁时,互斥锁将所有试图进入临界区的线程都阻塞住。 但是考虑一种情形,当前持有互斥锁的线程只是要读访问共享资源,而同时有其它几个线程也想读取这个共享资源,但是由于互斥锁的排它性,所有其它线程都无法获取锁,也就无法读访问共享资源了,但是实际上多个线程同时读访问共享资源并不会导致问 ......
线程 Linux 11

Linux多线程13-条件变量

上节代码存在的问题: 生产者已经没有数据了, 消费者还在while循环判断是否有数据,浪费资源 没有数据了应该通知生产者生产,生产好了通知消费者消费 这就需要条件变量 pthread_cond_t ```c int pthread_cond_init(pthread_cond_t *restrict ......
线程 变量 条件 Linux 13

Linux多线程14-信号量

信号量的类型 sem_t ```c int sem_init(sem_t *sem, int pshared, unsigned int value); 初始化信号量 参数: - sem: 信号量变量地址 - pshared: 0 用在线程间, 非0 用在进程间 - value: 信号量中的值 in ......
线程 信号 Linux 14

Linux多线程12-生产者和消费者模型

![image](https://img2023.cnblogs.com/blog/894919/202306/894919-20230626085900099-1696309927.png) 一个最简单的生产者消费者模型 ```c /* 生产者消费者模型(粗略版) */ #include #inc ......
生产者 线程 模型 消费者 Linux

Linux多线程01-线程概述

### 线程概述 - 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序 中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 UNIX 进程只是多 ......
线程 Linux 01

Linux多线程02-创建线程

### pthread_create 描述: > pthread_create() 函数在调用进程中创建一个新的线程。新线程通过调用 start_routine() 开始执行,arg 作为 start_routine() 的唯一参数传递。 新线程以以下方式之一终止: - 调用 pthread_exi ......
线程 Linux 02

Linux多线程03-终止线程

### pthread_exit 和 pthread_self 和 pthread_equal 描述: #### **pthread_exit** > pthread_exit() 函数终止调用该函数的线程,并通过retval返回一个值,如果该线程是可连接的,则在同一进程中调用pthread_joi ......
线程 Linux 03

Linux多线程06-线程取消

### pthread_cancel 描述: > pthread_cancel()函数向线程thread发送一个取消请求。目标线程对取消请求的响应取决于该线程控制的两个属性:其取消状态和类型。 一个线程的取消状态由pthread_setcancelstate(3)确定,可以启用(对于新线程而言是默认 ......
线程 Linux 06

Linux多线程07-线程属性

线程属性类型: pthread_attr_t 描述: pthread_attr_setdetachstate() 函数 将由 attr 引用的线程属性对象的分离状态属性设置为 detachstate 中指定的值。分离状态属性确定使用线程属性对象 attr 创建的线程将在可连接状态还是分离状态下创建。 ......
线程 属性 Linux 07