一. 什么是互斥锁 计算机中,当多个进程或者线程共享一个临界区(例如:共享内存空间或者全局变量),如果仅对该临界区读取,不进行内容修改,即使同时多次读取都是没有问题的。 但是,当我们需要修改临界区内的内容时,我们就必须面对一个情况:同时有多个操作对临界区的内容进行修改,在操作完后,保留的是那一次操作 ...
分类:
其他好文 时间:
2020-03-11 01:33:45
阅读次数:
56
numpy中切片产生的对象共享内存,所以更改一个,另一个也会随之更改。 ...
分类:
其他好文 时间:
2020-03-03 20:49:05
阅读次数:
58
并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因。 Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务 并行:同一时刻执行多个任务 Go语言的并发通过goroutine实现。goroutine类似于线程,属于用户态的线程,我们可以根 ...
分类:
编程语言 时间:
2020-02-23 09:53:12
阅读次数:
59
进程A创建共享内存,并且写入数据, 然后挂起6s, 进程B打开共享内存, 读取进程A写入的数据 进程B关闭共享内存 进程A写数据进入共享内存: #include <iostream>#include <windows.h>#include <WINNT.h>#include <tchar.h>#in ...
三个模块 1,game.exe,三个方法,控制台输入指令('A','B','R')分别控制三个方法的调用; 2,WGDll.dll,要注入到game进程中的dll文件; 3,myconsole.exe,用来注入dll文件的程序; 先开启game进程,然后用myconsole把dll注入到game,d ...
一个进程写数据,一个进程读数据 写进程: 1. shmget()获取共享内存 2. shmat()共享内存映射到进程空间 3. 写数据 读进程: 1. shmget()获取共享内存 2. shmat()共享内存映射到进程空间 3. 读数据 4. shmdt()共享内存从进程空间解除映射 5. shm ...
分类:
其他好文 时间:
2020-02-10 18:11:57
阅读次数:
75
编译器自带拷贝构造(ctor)和拷贝赋值函数(operator =), 但是对于成员变量含有指针的类,其不能使用默认的拷贝赋值函数。因为使用默认的,会直接将指针指向的地址进行赋值 (浅拷贝,共享内存,共指一个对象),而不是分配一块内存,具有相同的数值 (深拷贝,独立,两个对象)。 浅拷贝容易造成da ...
分类:
其他好文 时间:
2020-02-07 01:09:04
阅读次数:
93
创建共享内存python文件: import mmap import contextlib import time with contextlib.closing(mmap.mmap(-1, 100, tagname='SASU', access=mmap.ACCESS_WRITE)) as m: ...
分类:
编程语言 时间:
2020-02-06 15:04:49
阅读次数:
113
https://docs.python.org/zh-cn/3/library/multiprocessing.html 共享内存 可以使用 Value 或 Array 将数据存储在共享内存映射中。例如,以下代码: from multiprocessing import Process, Value ...
分类:
编程语言 时间:
2020-02-05 09:52:13
阅读次数:
105
共享内存允许两个或多个进程共享一个给定的存储区,就是多个进程将同一块物理内存映射到自己的虚拟地址上。因为不需要在客户进程和服务进程之间拷贝,所以是最快的一种IPC。 函数1 #include <sys/shm.h> int shmget(key_t key, size_t size, int fla ...
分类:
其他好文 时间:
2020-02-04 23:33:45
阅读次数:
107