上下文 线程 本质 上下

线程通信和线程属性

线程通信 线程间的通信⽬的主要是⽤于线程同步。所以线程没有像进程通信中的⽤于数据交换的通信机制。 同⼀进程的不同线程共享同⼀份内存区域,所以线程之间可以⽅便、快速地共享信息。只需要将数据复制到共享 (全局或堆)变量中即可。但是需要避免出现多个线程试图同时修改同⼀份信息。 线程属性 1、线程属性初始化 ......
线程 属性

前缀和(本质:空间换时间)

## 1. 数组种的双指针 借助一个变量做到了降维的优化 ### 1.1 左右指针 ![](https://img2023.cnblogs.com/blog/2171496/202308/2171496-20230831102039191-1781754601.png) ```java class ......
前缀 本质 时间 空间

线程同步 信号量

[toc] #信号量 比条件变量更加简单 ![](https://img2023.cnblogs.com/blog/3239608/202308/3239608-20230830234440637-628792680.png) 如图,当前老王的信号量为2,老赵的信号量为4,老赵开进去一辆车,那么空闲 ......
线程 信号

多线程与单线程执行的对比

对比技术点: 单线程:普通循环 多线程框架:CompletableFuture 多线程框架;ForkJoin 50次对比实验 源码: package com.example.demo; import org.apache.commons.lang3.time.StopWatch; import ja ......
线程

线程同步 条件变量

[toc] #条件变量 锁的不足:只能给一个线程放行,剩下的还需要阻塞 条件变量:可以让多个线程访问临界区,但会出现混乱问题,仍需要和互斥锁搭配使用 #为什么 使用场景复杂,适用于生产者消费者模型 多个生产者对应多个线程 多个消费者也对应多个线程 生产者生产满了之后,不能生产,使用条件变量进行阻塞, ......
线程 变量 条件

线程

### 线程 1. 进程是资源管理的最小单位 2. 线程是系统调度的最小单位 假设Linux是一个工厂,进程就是一个车间,线程就是车间里面的流水线(线程运行互不干扰,车间资源是共享的) ### 线程函数的接口特点? 1. 由于线程函数接口都是封装在一个线程库中,所以我们看不见源码。但我们可以用`ma ......
线程

线程池执行任务流程图

AbortPolicy:抛出RejectedExecutionException异常,拒绝该任务的执行。 ......
流程图 线程 流程 任务

多线程执行工具方法

public static <P, T> List<CompletableFuture<T>> multiThreadRun(Function<P, T> run, Collection<P> list, int threadSize, Executor executor, boolean wait ......
线程 工具 方法

MySQL 使用Navicat delete/insert into/update 大量数据表锁死,kill的线程后线程处于killed状态问题解决

MySQL 使用delete/insert into/update 大量数据表锁死,kill的线程后线程处于killed状态问题解决 实际生产环境问题描述: 使用Navicat备份BigData数据表时不小心点到了取消按钮,导致数据表被锁。 查看MySQL线程队列,找到刚刚执行的SQL看是属于什么状 ......
线程 数据表 状态 Navicat 数据

请求上下文分析

[toc] ## 1 请求上下文分析(源码:request原理) ### 1.1 导出项目的依赖 ```python # 之前 pip freeze >requirments.txt 把当前解释器环境下的所有第三方依赖都导出来 # 使用第三方模块,更精确的导出依赖 pipreqs 第一步:安装 pi ......
上下文 上下

多线程打印01 02 03 04 05 ...

# 多线程打印01 02 03 04 05 ... 原文:https://www.cnblogs.com/hapjin/p/17501458.html 多线程打印:01 02 03 04 05 ... 1. main 函数中的while(true)表示线程会一直争抢锁,进行打印 2. 通过检查条件变 ......
线程 02 03 04 05

Java线程池分批调用

# Java线程池分批调用 原文:https://www.cnblogs.com/hapjin/p/17568676.html ## 前言 本文记录 Java分批、并发处理数据的写法。虽然分批并发调用的写法很多,但向线程池提交任务执行、某批次执行失败如何处理、某批次的执行结果如何与原task对应等细 ......
线程 Java

线程安全三竞争条件

线程安全取决于那三竞争条件的成立: 两个处理共享变量 至少一个处理会对变量进行修改 一个处理未完成前另一个处理会介入进来 ......
线程 条件

线程篇--线程常⽤操作(线程号)

进程号⽤ pid_t 数据类型表⽰,是⼀个⾮负整数。线程号则⽤ pthread_t 数据类型来表⽰,Linux 使⽤⽆符号长整 数表⽰。 1、pthread_self函数 #include <pthread.h> /** * 获取线程号. * @return 返回调⽤线程的线程. */ pthrea ......
线程

关于线程池原理实现(C语言、C++)

1、进程和线程 1、进程:进程是操作系统中独立执行单位,每个进程都有自己独立的的内存空间, 所以优点:隔离性强:不同的进程之间相互独立,一个进程的崩溃不会影响到其他进程的运行 稳定性高:进程之间分配独立的内存空间,一个进程的错误不会直接影响其他进程 可靠性高:操作系统可以为每个进城分配独立的资源,确 ......
线程 原理 语言

线程同步 读写锁

[toc] #读写锁 一把锁,并不是读锁和写锁 称之为读写锁,因为他既可以锁定读操作,也可以锁定写操作 `pthread_rwlock_t rwlock;` 锁中记录了 * 锁的状态 打开关闭 * 锁定的操作 锁读 锁写 * 哪个线程持有钥匙 使用方式和互斥锁相同: 1. 找共享资源 2. 确定临界 ......
线程

线程篇--线程的特点

1. 线程是轻量级进程(light-weight process),也有PCB,创建线程使⽤的底层函数和进程⼀样,都是clone; 2. 从内核⾥看进程和线程是⼀样的,都有各⾃不同的PCB; 3. 进程可以蜕变成线程; 4. 在linux下,线程最是⼩的执⾏单位;进程是最⼩的分配资源单位。 实际上, ......
线程 特点

多线程2

# 多线程2 ### 12.3线程的生命周期 JDK中用Thread.State类定义了线程的几种状态 要想实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下的五种状态: - 新建:当一个Thread类或其子类 ......
线程

Python 变量赋值的本质 (垃圾回收机制)

开始变量a指向10的内存空间,之后指向20的内存空间,10的内存空间没有变量指向后,变为垃圾,就会被垃圾回收机制回 a = 10 print(id(a)) # 内存地址:140720318571592 a = 20 print(id(a)) # 内存地址:140720318571912 a=10在内 ......
变量 本质 机制 垃圾 Python

SynThreadPool线程

SynThreadPool.addAuthorityChangeSynRunnable( new ManagerLogAccessSynRunnable(iManagerAccessLogService, logJsonObject)); package com.infosec.ztpdp.poli ......
线程 SynThreadPool

线程同步 死锁

[toc] #加锁后忘记解锁 ``` // 场景1 void func() { for(int i=0; i<6; ++i) { // 当前线程A加锁成功, 当前循环完毕没有解锁, 在下一轮循环的时候自己被阻塞了 // 其余的线程也被阻塞 pthread_mutex_lock(&mutex); .. ......
线程

.NET:使用 P/Invoke 调用 C# 中的 Win32 DLL——本质上和动态加载DLL没有区别

.NET:使用 P/Invoke 调用 C# 中的 Win32 DLL 本质上和动态加载DLL没有区别!!!如下: 在 .NET 中执行非托管代码时,我们通常想要实现什么? 假如是红队,一般想要运行原始的beacon payload,在该payload中运行 C# 封装的本地代码。 很长一段时间以来 ......
DLL 本质 动态 Invoke NET

Go 面试题:string 是线程安全的

大家好,我是煎鱼。 之前在某知名平台看到大家在交流 Go 岗位相关的面试题,其中有一道引起了大家的一些讨论,勾起被八股文的深深回忆。 面试题如下: 如标题所示,原题是:Go 中的 string 赋值是线程安全的吗? 我们可以一起先想想答案,看看中不中。 线程安全是什么 线程安全是指在多线程环境下,程 ......
线程 string Go

DataContext数据上下文

1 概念 Binding类的Source属性一般用于指定某个属性绑定的源对象,需要在每个控件上都显式指定绑定源,比较繁琐。 DataContext通常用于指定某一个控件的默认数据上下文,它会被该控件及其所有子控件继承和使用。 如果几个控件需要绑定到同一个源,用DataContext将更加简洁,因为不 ......
上下文 DataContext 上下 数据

python多线程

# python多线程 # 多线程 threading,利用CPU和IO可以同时执行的原理 # 多进程 multiprocessing,利用多核CPU的能力,真正的并行执行任务 # 异步IO asyncio,在单线程利用CPU和IO同时执行的原理,实现函数异步执行 * 使用Lock对资源加锁,防止冲 ......
线程 python

leetcode & c++多线程刷题日志

## 1.按序打印 [按序打印](https://leetcode.cn/problems/print-in-order/description/) **解法** + 1. 互斥锁 ```c++ class Foo { mutex mtx1, mtx2; public: Foo() { mtx1.l ......
线程 leetcode 日志 amp

多线程|volatile的使用

一、内存可见性问题 先来看如下代码 class MyCounter{ public int flag = 0;}public class ThreadDemo22 { public static void main(String[] args) { MyCounter myCounter = new ......
线程 volatile

这是一个基于threading可停止线程的有限容量有限并行度的python任务管理器

这是一个可停止线程的有限容量有限并行度的任务管理器 基于:[GitHub - AlitaIcon/StopableThreadJob: 可停止线程任务管理器](https://github.com/AlitaIcon/StopableThreadJob) ### Quick Start 基础调用与效 ......
有限 线程 threading 容量 任务

深入理解操作系统中进程与线程的区别及切换机制(下)

本文首先介绍了进程的控制结构,即进程控制块(PCB),它是表示进程的数据结构,包含了进程的相关信息和资源。PCB之间通过链表连接,形成就绪队列和阻塞队列,用于进程调度和资源管理。接着,文章详细探讨了进程的切换过程。进程切换是为了保证公平分配CPU时间片,涉及保存和恢复进程的执行上下文、更新进程状态和... ......
线程 进程 机制 系统

基于方面的情感分析的深度上下文和关系感知学习 Deep Context- and Relation-Aware Learning for Aspect-based Sentiment Analysis (ACL2021)

论文对方面级情感分析的三个任务提出了一个解决方案,三个任务共享编码层,通过简单的全连接层进行方面词和观点词的提取,情感分析任务首先做一个自注意力,之后分别与方面词和观点词提取的特征向量做互注意力,通过全连接层进行情感分类。另外,模型还设计了两个子任务,第一个将句子中的词屏蔽,预测这个词属于方面词、观 ......