线程 进程
MQ和线程池
盘一盘这个没资格出现在面试环节的场景题。 你好呀,我是歪歪。 前两天在一个技术群里看到有人抛出一张图片,提出了这样的一个问题: 请教一下,线程池可以做到根据任务的类型,来指定特定线程执行吗? 了解了一下背景,是批量任务触发,从订单表中查询出“处理中”状态的订单,订单可能属于不同的通道,所以需要调用不 ......
win api启动结束线程
static unsigned int __stdcall helper_thread_proc(void * para) { //code return 0; } static HANDLE start_helper_thread() { HANDLE hdl; hdl = (HANDLE)_be ......
高并发下解决线程安全问题
在高并发的情境下,库存超卖成为了一个常见的问题。同时,为了提升用户体验和确保交易的公平性,实现一人一单的功能也变得至关重要。 建表 创建商品表和订单表 CREATE TABLE `goods` ( `id` int NOT NULL, `name` varchar(50) CHARACTER S ......
僵尸进程杀死
1、 ps xf | grep “/virtuoso ”找到Z状态的进程 2、 Z是僵尸进程,是无法单独kill掉的需要查找父进程 3、 父进程查找 cat /proc/4385/status 找到该子进程对应的父进程,将其父进程杀死% State: Z (zombie) gid: 4385 Pid ......
java常用的几种线程池比较
1. 为什么使用线程池 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达 ......
windows通过命令杀掉某个端口对应的程序进程
如下 在本地开发时候,经常会出现端口被占用的情况。通过命名快速找到被占用的端口,并杀掉对应的应用进程。 1 查找被占用的端口号 netstat -aon | findstr 端口号 2 根据命令一获取到pid,根据pid杀掉应用进程 taskkill /pid pid值 -t -f 例如:taskk ......
Java 新技术:虚拟线程使用指南(二)
虚拟线程是在 Java 21 版本中实现的一种轻量级线程。它由 JVM 进行创建以及管理。虚拟线程和传统线程(我们称之为平台线程)之间的主要区别在于,我们可以轻松地在一个 Java 程序中运行大量、甚至数百万个虚拟线程。 由于虚拟线程的数量众多,也就赋予了 Java 程序强大的力量。虚拟线程适合用来 ......
Windows中杀死占用某个端口的进程
第一步,打开cmd命令窗口,输入命令,根据端口号查找对应的进程号 netstat -ano | findstr 80 //列出进程极其占用的端口,且包含 80<details> 结果如下: 发现 8080 端口被 PID(进程号)为 9268 的进程占用。 第二步, 据进程号寻找进程名称 taskl ......
11--多线程回顾
一 线程 1.1 概念 线程 在一个进程的内部,要同时干多件事,就需要同时运行多个“子任务”,把进程内的这些“子任务”叫做线程 是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同 ......
记一次docker执行kill进程卡住问题
背景:收到报警信息,一台运行docker的32G内存机器突然爆内存80%警告,上去观察也没发现特别占用内存的进程,只是发现有几个docker容器运行8天多,是异常卡住,正常是运行几秒就关闭的于是我就打算docker kill 容器ID,结果一直卡住,等了好久。 解决: 通过ps -ef | grep ......
10--多进程回顾
一 多任务原理 1.1 概念 现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统 就是操作系统可以同时运行多个任务 1.2 实现原理 单核CPU实现多任务原理 操作系统轮流让各个任务交替执行 QQ执行2us(微秒),切换到微信,在执行2us,再切换 ......
Python开启线程和线程池的方法
一.最佳线程数的获取: 1、通过用户慢慢递增来进行性能压测,观察QPS(即每秒的响应请求数,也即是最大吞吐能力。),响应时间 2、根据公式计算:服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量 3、单用户压测,查看CPU的消耗,然后直接乘以百分比,再进行压测 ......
RHCSA之系统进程学习.17949520
什么是进程 在linux系统中,触发任何一个事件时,系统都会讲他定义成为一个进程。并且回给予这个进城一个ID,称为PID,同时根据出发这个进程的用户与相关属性关系,会给予这个进程一个一组有效的权限设置。 进程与程序 进程的产生 一般来说,执行一个程序或命令就可以触发一个事件而获取一个PID。 任务管 ......
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 ......
Linux进程管理、安全
1.介绍 1.什么是进程 比如: 开发写的代码我们称为程序,那么将开发的代码运行起来。我们称为进程。 总结一句话就是: 当我们运行一个程序,那么我们将运行的程序叫进程。 PS1: 当程序运行为进程后,系统会为该进程分配内存,以及进程运行的身份和权限。 PS2: 在进程运行的过程中,系统会有各种指标来 ......
【多线程】synchronized关键字详解
synchronized是什么? java中使用synchronized关键字实现加锁/解锁,来保证多线程对共享资源的访问,防止多个线程同时访问共享资源导致数据问题。 synchronized是重量级锁还是轻量级锁? java早期版本中synchronized是重量级锁,无论是否发生了锁竞争,都会进 ......
【多线程】JAVA中的锁
锁作用 java中的锁是用来控制多个线程访问共享资源的方式。一般来说一个锁能够防止多个线程同时访问共享资源(读写锁,读锁是共享锁允许多个线程读共享资源)。 锁的分类 乐观锁:在访问资源时,认为竞争不总是存在,所以在访问共享资源时不加锁,而是在更新数据时判断共享资源是否被其他线程修改(根据版本号/时间 ......
【Java 并发】线程同步
目录线程同步条件对象synchronized 关键字监视器volatile 线程同步 条件对象 通常线程进入临界区,却发现需要满足某一个条件后,才能继续执行,这时,就需要使用一个条件对象,来管理那些已经获得了一个锁,但是,却不做有用工作的线程。这些条件对象经常被称为条件变量(Conditional ......
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 ......
线程池
一、Executor 利用Executors创建不同的线程池满足不同场景的需求 1、newFixedThreadPool(int nThreads) 制定工作线程数量的线程池 2、newCachedThreadPool() 处理大量短时间工作任务的线程池 试图缓存线程并重用,当无缓存线程可用时,就会 ......
多进程启动方法"spawn"、"fork"的选择
官方指导 实践 使用官方的例子: python版本为3.9.6 根据官方的说法,3.8开始默认就是spawn了,而不是fork。 from multiprocessing import Process, Lock def f(l, i): l.acquire() try: print('hello ......
Linux核心组件(CPU,内存,磁盘,网络,进程)
一、CPU 不同组件,每秒的运算、读写次数 命令集:lscpu+top/htop/uptime+mpstat+sar # 查看CPU静态信息 cat /proc/cpuinfo # 查看CPU统计信息 lscpu uptime Load Average(平均负载):就是一段时间内(1分钟、5分钟、1 ......
【多进程】python多进程CPU密集型任务的进程数选择
实验思路 从1加到100000000, 分别用单进程,多进程方案去做。 实验代码 from multiprocessing import Pool, Process, Queue import os, time, random def test_func(left, right): res = 0 ......
swoole运行Master 进程、Reactor 线程、Worker 进程、Task 进程、Manager 进程的区别与联系
Master 进程、Reactor 线程、Worker 进程、Task 进程、Manager 进程的区别与联系 Master 进程 Master 进程是一个多线程进程 Reactor 线程 Reactor 线程是在 Master 进程中创建的线程 负责维护客户端 TCP 连接、处理网络 IO、处理协 ......
第5章 在 ASP.NET Core Web 应用进程中使用 EF Core
本章涵盖 在 ASP.NET Core 中使用 EF Core 在 ASP.NET Core 中使用依赖注入 在 ASP.NET 核心MVC操作中访问数据库 使用 EF Core 迁移更新数据库 使用 async/await 提高可扩展性 在本章中,您将使用 ASP.NET Core 构建一个真正的 ......
用Spring Boot 3.2虚拟线程搭建静态文件服务器有多快?
Spring Boot 3.2 于 2023 年 11 月大张旗鼓地发布,标志着 Java 开发领域的一个关键时刻。这一突破性的版本引入了一系列革命性的功能,包括: 虚拟线程:利用 Project Loom 的虚拟线程释放可扩展性,从而减少资源消耗并增强并发性。 Native Image支持:通过N ......