线程 队列 信号 内存
Python开启线程和线程池的方法
一.最佳线程数的获取: 1、通过用户慢慢递增来进行性能压测,观察QPS(即每秒的响应请求数,也即是最大吞吐能力。),响应时间 2、根据公式计算:服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量 3、单用户压测,查看CPU的消耗,然后直接乘以百分比,再进行压测 ......
shell脚本监控cpu,内存,磁盘
#!/bin/bash free=$(free -h | grep "Mem" | awk '{print $4}' | cut -d "." -f 1) if [ -n "$free" ];then if [ $free -le 3 ];then echo "free height ......
数据结构-单调队列
单调队列使用范围: 滑动区间的极值查询与维护 单调队列的原理: 单调队列需要持续维护队列的单调性,我们假设该队列为单增队列,那么最小值可以在队尾取得。 如图是一个刚建立的队列 接下来思考插入一个元素怎么处理:我们从队首开始看,如果队首的元素比目前需要插入的值大,那么原先队列的那个值在滑动过程中就不会 ......
Redis是单线程的,但是为什么还那么快
Redis是单线程的,但是为什么还那么快 Redis是纯内存操作,执行速度非常快 采用单线程,避免不必要的上下文切换可竞争条件,多线程还要考虑线程安全问题 使用I/O多路复用模型,非阻塞IO 能解释下I/O多路复用模型? Redis是纯内存操作,执行速度非常快,它的性能瓶颈是网络延迟而不是执行速度, ......
SpringBoot 使用 RequestBodyAdviceAdapter 和 ResponseBodyAdvice 对请求和响应做标识 使用RequestContextHolder新增线程变量
@ControllerAdvice public class RequestBodyAdapter extends RequestBodyAdviceAdapter { @Override public boolean supports(MethodParameter methodParameter ......
第十节:高阶队列详解(双端队列、优先级队列)
一. 二. 三. ! 作 者 : Yaopengfei(姚鹏飞) 博客地址 : http://www.cnblogs.com/yaopengfei/ 声 明1 : 如有错误,欢迎讨论,请勿谩骂^_^。 声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权 ......
Redis过期Key处理和内存淘汰策略
惰性删除 概述:当访问Key时,才去判断它是否过期,如果过期,直接干掉。这种方式对CPU很友好,但是一个key如果长期不用,一直存在内存里,会造成内存浪费。 set name xxxx 10 get name // 发现name过期了,直接删除 优点:对CPU友好,只会在使用该key时才会进行过期检 ......
STM32_RTOS_V2编程模板1-消息队列
/*QUEUE1*/ // 1DEFINE osMessageQueueId_t queueDemo1 = NULL; // 2INIT queueDemo1 = osMessageQueueNew(8, sizeof(uint16_t), NULL); // 3PUT static uint16_ ......
不止八股:阿里内部语雀一些有趣的并发编程笔试题1——一半容量才可以出队的阻塞队列
系列文章目录和关于我 0丶引入 笔者社招一年半经验跳槽加入阿里约1年时间,无意间发现一些阿里语雀上的一些面试题题库,出于学习目的在此进行记录。 这一篇主要写一些有趣的笔试题(非leetcode),这些有的考验并发编程,有的考验设计能力。 笔者不是什么技术大牛,此处笔试题充满主观思考,并不一定是满分答 ......
【多线程】synchronized关键字详解
synchronized是什么? java中使用synchronized关键字实现加锁/解锁,来保证多线程对共享资源的访问,防止多个线程同时访问共享资源导致数据问题。 synchronized是重量级锁还是轻量级锁? java早期版本中synchronized是重量级锁,无论是否发生了锁竞争,都会进 ......
内存管理
内存管理 变量:接受变量值 描述状态 name='xy' print(name) height=170 xy 引用计数 name='XY' #引用计数为1, name2=name #XY引用计数为2 name1='XY' del name #XY引用计数为1 ......
【多线程】JAVA中的锁
锁作用 java中的锁是用来控制多个线程访问共享资源的方式。一般来说一个锁能够防止多个线程同时访问共享资源(读写锁,读锁是共享锁允许多个线程读共享资源)。 锁的分类 乐观锁:在访问资源时,认为竞争不总是存在,所以在访问共享资源时不加锁,而是在更新数据时判断共享资源是否被其他线程修改(根据版本号/时间 ......
【Java 并发】线程同步
目录线程同步条件对象synchronized 关键字监视器volatile 线程同步 条件对象 通常线程进入临界区,却发现需要满足某一个条件后,才能继续执行,这时,就需要使用一个条件对象,来管理那些已经获得了一个锁,但是,却不做有用工作的线程。这些条件对象经常被称为条件变量(Conditional ......
一文搞懂什么是阻塞IO、信号驱动IO、Reactor模型、零拷贝
公众号《鲁大猿》,寻精品资料,帮你构建Java全栈知识体系 www.jiagoujishu.cn 基础IO 如何从数据传输方式理解IO流? 从数据传输方式或者说是运输方式角度看,可以将 IO 类分为: 字节流, 字节流读取单个字节,字符流读取单个字符(一个字符根据编码的不同,对应的字节也不同,如 U ......
Android——主线程给子线程发送消息——子线程有自己的looper
xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="mat ......
Android——子线程发消息给主线程进行页面信息更新
一、认识Looper和Handler对象 当主线程诞生时,就会去执行一个消息循环(Message Loop),以便持续监视它的消息队列(Message Queue简称MQ)。 当UI事件发生了,通常会立即丢一个Message给MQ,此时主线程就立即从MQ里边取出该消息并处理。 比如,用户在UI界面上 ......
Android——子线程刷新UI界面
xml配置文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_par ......
Redis内存碎片
Redis内存碎片(不会影响 Redis 性能,但会增加内存消耗) 1. 什么是内存碎片? 你可以将内存碎片简单地理解为那些不可用的空闲内存 举个例子:操作系统为你分配了 32 字节的连续内存空间,而你存储数据实际只需要使用 24 字节内存空间,那这多余出来的 8 字节内存空间如果后续没办法再被分配 ......
【信号与系统】画图题
![image](https://img2024.cnblogs.com/blog/2571021/202401/2571021-20240106151009241-660569002.jpg) > - -- - - - - -- ![image](https://img2024.cnblogs.c... ......
线程池
一、Executor 利用Executors创建不同的线程池满足不同场景的需求 1、newFixedThreadPool(int nThreads) 制定工作线程数量的线程池 2、newCachedThreadPool() 处理大量短时间工作任务的线程池 试图缓存线程并重用,当无缓存线程可用时,就会 ......
直播平台制作,重试机制和死信队列的合理运用
在直播平台制作中,如何实现消息消费失败后重试至多三次,仍失败则加入死信队列? 一、重试机制 首先说一下RabbitMQ的消息重试机制,顾名思义,就是消息消费失败后进行重试,重试机制的触发条件是消费者显式的抛出异常,如果没有显式地抛出异常或者try catch起来没有手动回滚,事务是不会回滚的。以下代 ......
【信号与系统】卷积信号计算
![image](https://img2024.cnblogs.com/blog/2571021/202401/2571021-20240106133347387-445246079.jpg) ![image](https://img2024.cnblogs.com/blog/2571021/20... ......
用RWEverything刷内存spd
最近参与的一个项目,由于主板只支撑ddr3L的内存,需要把ddr3标压内存刷为ddr3L。通过百度找到如下: 不无折腾 篇五:DDR3标压内存改DDR3L低压条保姆级傻瓜教程 于是动手实践了一下,特此记录本过程: 1、找台支持ddr3标压的机子作为刷机平台,并下载好软件RWEverything1.7 ......
代码随想录 day10 栈模拟队列 队列模拟栈
栈模拟队列 大概了解一下思路自己就可以很快写出来了 我们需要第二个辅助栈帮助我们把stackIn的顺序颠倒,这样FILO的栈颠倒后 pop的顺序就和FIFO的队列顺序一致了 大概就是这张图 队列模拟栈 题目要求使用两个队列模拟栈 其实可以只需要一个队列就可以模拟 栈的出栈顺序是最后一个先出栈,那么队 ......
Linux核心组件(CPU,内存,磁盘,网络,进程)
一、CPU 不同组件,每秒的运算、读写次数 命令集:lscpu+top/htop/uptime+mpstat+sar # 查看CPU静态信息 cat /proc/cpuinfo # 查看CPU统计信息 lscpu uptime Load Average(平均负载):就是一段时间内(1分钟、5分钟、1 ......
全何发布96GB大容量DDR5内存:8400MHz超高频率
1月5日消息,台湾全何(V-Color)发布了全新的Manta XFinity系列DDR5内存,不但拥有最高96GB大容量,还有8400MHz最高频率。 新内存提供2x16GB、2×24GB、2×32GB、2×48GB等不同容量套装,频率最高可选8400MHz。 专门针对Intel平台优化,并支持X ......
swoole运行Master 进程、Reactor 线程、Worker 进程、Task 进程、Manager 进程的区别与联系
Master 进程、Reactor 线程、Worker 进程、Task 进程、Manager 进程的区别与联系 Master 进程 Master 进程是一个多线程进程 Reactor 线程 Reactor 线程是在 Master 进程中创建的线程 负责维护客户端 TCP 连接、处理网络 IO、处理协 ......
(五十一)C#编程基础复习——C#队列
在C#中,队列类与堆栈类类似,它代表了一个先进先出的对象结合,当你需要对项目进行先进先出访问时,则可以使用队列。向队列中添加元素称为入队,从堆栈中移除元素称为出队。 ......