首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏侯哥的Python分享

    MySQL高级11-后台进程

      MySQL的服务实现通过后台多个线程、内存池、文件交互来实现对外服务的,不同线程实现不同的资源操作,各个线程相互协助,共同来完成数据库的服务。MySQL常用的后台线程概括如下,分为Master Thread,IO Thread,Purge Thread,Page Cleaner Thread

    69931编辑于 2023-09-21
  • 11 Python 进程与线程编程

    1、什么是进程和线程? 首先我们要知道进程是系统进行资源分配和调度的基本单位,而线程是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。 进程之间是无不干扰的,然后 name 是主进程,主进程没有了干扰,所以就直接执行了。 2.2 阻塞 如果我们想要让两个 子进程先执行完毕再执行主进程这个就可以使用到join。 我们来优化一下代码。 3、 进程池和进程锁 由于每个进程都会消耗内存和cpu 资源,所以我们不能无限创建进程,这样有可能会发生系统的死机的情况。 为了解决这个问题,我们可以使用多线程来替代,或者进程池。 3.1 进程池 我们现在知道,进程不能创建太多,太多容易造成系统死机 ,所以我们要固定进程的创建数量,这个时候借助进程池的帮助。 我们可以认为进程池就是个池子,在这个池子创建好一定数量的进程 。 比如上面这张图中的一个正方形的池子,里面有六个进程,这六个进程会伴随着进程池一起被创建。

    57610编辑于 2022-11-07
  • 来自专栏sktj

    python 多进程 (并行编程 11)

    range(5): p=multiprocessing.Process(target=foo,args=(i,)) pros.append(p) p.start() p.join() 线程和进程性能 + str(count)) if name == 'main': for i in range(2, 5): p = MyProcess(i) p.start() daemon=True 守护进程在主进程结束马上终止 < 5: i += 1 print(f'第{i}秒') time.sleep(1) if name == 'main': Process(target=wahaha).start() #子进程在主进程结束后仍然正常执行 p = Process(target=func,args=(1,)) p.daemon = True #主进程结束,该守护进程结束 p.start() time.sleep(3) print (f'pid:{os.getpid()},ppid:{os.getppid()}') print('主进程结束') p.terminate() 进程终止

    75320发布于 2019-07-30
  • 来自专栏不想当开发的产品不是好测试

    查看占用内存进程

    ps -e  -o "%C  : %p : %z : %a"|sort -k5 -nr|head -10 -e,显示出所有的进程 -o,格式化输出 CODE   NORMAL   HEADER       

    7K70发布于 2018-01-24
  • 来自专栏相约机器人

    GPU,具有Tensorflow的多进程

    需要与要启动的进程一样的内核(有时内核可以处理多个“线程”,因此这是最后关注的数字)。 将使用AWS的实例p3.8xlarge,提供32个vCores和4个V100显卡。 这个包允许启动进程并创建管道以与它们通信。以下是架构的拓扑: ? 多处理图 有32个工作进程和1个主进程。 工作进程只是在玩游戏来收集数据并将其发送到主进程,主进程将训练这些数据并将新网络保存在文件中。然后,工作人员收到加载新网络,加载并再次播放N个游戏的消息。 因此,需要从主进程启动32个进程,并在主进程和每个进程(即32个管道)之间创建一个管道。还需要在主进程内创建线程以异步侦听管道。 对于GPU分配,有32个进程,4个GPU,每个16GB内存。增加每个进程的内存可以提高运行模型的进程速度。

    2.8K20发布于 2019-07-22
  • 来自专栏coding

    python的多进程fork

    进程 多个进程分别修改程序中的全局变量,结果会是怎样的? 如:全局变量num初始值为0,多个进程分别对该变量进行加1,是否会产生叠加效果? ,互不影响 多次fork 在一个程序中,调用两次fork函数,会有多少个进程? = os.fork() if pid == 0: print(3) else: print(4) # 2 # 1 # 4 # 4 # 3 # 3 由此可知,fork两次后,共有6个进程 第一次fork后,有两个进程。 这两个进程在第二次fork时,又各自产生新的进程 如图所示: ? 多次fork 源码下载

    2.2K30发布于 2018-06-27
  • 来自专栏Android 研究

    Android跨进程通信IPC之11——AIDL

    2、如果使用AIDL 3、AIDL的原理 那我们开始围绕这三个问题开始一次接待 二、为什么要设置AIDL 两个维度来看待这个问题: (一) IPC的角度 设计这门语言的目的是为了实现进程间通信,尤其是在涉及多进程并发情况的下的进程间通信 每一个进程都有自己的Dalvik VM实例,都有自己的一块独立的内存,都在自己的内存上存储自己的数据,执行着自己的操作,都在自己的那个空间里操作。每个进程都是独立的,你不知我,我不知你。 13936966f3097ecab148b88871eeb79b0a9fe984/output/aidl -I/Users/gebilaolitou/.android/build-cache/fb883931c2e88ee11d0e77773aa01a2e67652940 在服务端和客户端也可以照常使用这个.java类进行跨进程通信。 ,也是一个代理类,在这个代理中实现跨进程通信。

    1.9K10发布于 2018-08-30
  • 来自专栏CSIG质量部压测团队

    【项目实战-11进程莫名被杀,真相是...

    问题影响: 15%的请求会出502 【问题现象】 通过strace attach到进程看到发生了segfault,进程被系统信号SIGSEGV强杀。 23.png 【问题分析与排查思路】 进程被SIGSEGV强杀,第一反应是去找coredump,cordump是进程在退出前由操作系统把进程当前的内存转存到一个core文件中。 排除 进程捕获了SIGSEGV信号 查看/proc/pid/status发现sigCgt为0x0000000184004a07,SIGSEGV并未被进程捕获。 排除 25.png linux支持对每个进程进行dumpable标记,dumpable被设置为SUID_DUMP_DISABLE(0) 的进程不会输出core。 PHP 7之后进程默认不会输出core。

    1.2K10发布于 2021-02-23
  • 来自专栏嵌入式ARM和Linux

    Linux内核11-进程之间的关系

    进程P0依次创建了P1、P2和P3。继而,进程P3创建了P4。 更进一步讲,进程之间还有其它关系:一个进程可以是进程组的组长或者login会话的组长,还可以是线程组的组长,还可以追踪其它进程的执行。 表3-4 进程描述符中建立非父子兄弟关系的数据成员 成员名称 描述 group_leader 进程P的进程组组长的进程描述符 signal->pgrp 进程P的进程组组长的PID tgid 进程P的线程组组长的 pid_hashfn(x) hash_long((unsigned long) x, pidhash_shift) 其中,pidhash_shift参数是哈希表索引所占的位数,在我们的例子中需要2048项,也就是2^11 ,所以pidhash_shift=11。 unsigned long hash = val * 0x9e370001UL; return hash >> (32 - bits); } 因为在我们的示例中,pidhash_shift等于11

    1K20编辑于 2022-08-10
  • 来自专栏Vamei实验室

    Python标准库11进程探索 (multiprocessing包)

    在初步了解Python多进程之后,我们可以继续探索multiprocessing包中更加高级的工具。这些工具可以让我们更加便利地实现多进程进程进程池 (Process Pool)可以创建多个进程。这些进程就像是随时待命的士兵,准备执行任务(程序)。一个进程池中可以容纳多个待命的士兵。 ? close()  进程池不再创建新的进程 join()   wait进程池中的全部进程。必须对Pool先调用close()方法才能join。 练习 有下面一个文件download.txt。 Process对象代表的进程。 在防火墙允许的情况下,我们完全可以将Manager运用于计算机,从而模仿了一个真实的网络情境。

    75250发布于 2018-01-18
  • 【Docker】Supervisor 实现单容器运行服务进程

    Supervisor 介绍 1、基本概念 Supervisor 是一个基于 Python 开发的进程管理工具,主要用于监控、控制 Linux 操作系统上的多个进程,通过将命令行进程转变为后台守护进程, Supervisor 采用 C/S(客户端/服务端)架构来实现进程管理: 服务端:即主进程 supervisord supervisord 启动时会生成配置文件中定义的子进程,并监控子进程的状态,当子进程异常退出时对其进行自动重启 、停止、重启、查看状态等操作 2、主要作用 管理进程:Supervisor 可以启动、停止、重启和监控多个进程,确保进程异常退出后能够自动重启 记录日志:Supervisor 可以记录子进程的标准输出和错误输出 作为主进程启动,并置于守护进程模式 Supervisord 根据配置文件中的设置,逐一启动子进程 Supervisord 通过操作系统信号机制,实时监控子进程的运行状态 Supervisord 在子进程状态异常时接收到控制信号 [program:test-server] # command:进程启动命令 # process_name:进程名称 # user:进程启动用户 # directory:启动命令执行前切换到的目录 #

    1.5K00编辑于 2025-01-16
  • 来自专栏ml

    socket编程与利用进程进行并行连接

    6 #include<sys/socket.h> 7 #include<sys/types.h> 8 #include<error.h> 9 10 #define ERR_EXIT(m) \ 11 PHONY: clean 5 .PHONY: start 6 7 CC =gcc 8 SRC =server.c 9 OBJS =$(SRC:.c =.o) 10 BIN = Server 11 bind (sock, (struct sockaddr *) &sockaddr, sizeof (sockaddr)) < 0) 9 ERR_EXIT ("Bind");   二:  利用进程进行并行 socket阻塞式连接:         客户端和makefile文件和上面一样,只是将socket的服务端,修改为调用进程来进行并发连接即可!       6 #include<sys/socket.h> 7 #include<sys/types.h> 8 #include<error.h> 9 10 #define ERR_EXIT(m) \ 11

    1.5K30发布于 2018-03-26
  • 来自专栏Ywrby

    11-进程调度的时机,方式,切换与过程

    进程调度 进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机 需要进行进程调度与切换的情况(进程调度的时机) 1. 当前运行的进程主动放弃处理机 进程正常终止 运行过程中发生异常而终止 进程主动请求阻塞(如等待I/O设备) 2. 适合于分时操作系统、实时操作系统 进程的切换与过程 “狭义的进程调度”与“进程切换”的区别: 狭义的进程调度指的是从就绪队列中选中一个要运行的进程。 (这个进程可以是刚刚被暂停执行的进程,也可能是另一个进程,后一种情况就需要进程切换) 进程切换是指一个进程让出处理机,由另一个进程占用处理机的过程。 广义的进程调度包含了选择一个进程进程切换两个步骤。

    80221编辑于 2022-10-27
  • 来自专栏有趣的django

    11.多线程、多进程和线程池编程

    future in as_completed(all_task): data = future.result() print(data) #已经成功的task函数的return 11.5.进程间通信 my_producer.start() my_consumer.start() my_producer.join() my_consumer.join() 11.6.进程间通信 manger中的queue queue = Manager().Queue(10) pool = Pool(2) #创建进程池 pool.apply_async(producer args=(queue, )) pool.apply_async(consumer, args=(queue, )) pool.close() pool.join() 11.7.进程间通信 - Pipe pipe实现进程间通信(只能两个进程之间) #Pipe进程间通信 from multiprocessing import Process, Pipe def producer(pipe

    55220发布于 2019-08-26
  • 来自专栏林德熙的博客

    dotnet X11 获取屏 edid 信息

    具体的方法如下 通过 XRRGetMonitors 方法获取当前设备的每个显示器屏幕信息,其方法定义代码如下 const string libX11Randr = "libXrandr.so .2"; [DllImport(libX11Randr)] public static extern XRRMonitorInfo* XRRGetMonitors(IntPtr \Screens\X11Screen.Providers.cs public class Randr15ScreensImpl { public Randr15ScreensImpl(nint 0, 0, 1, 1, 0, IntPtr.Zero, IntPtr.Zero); return win; } [DllImport(libX11 /FelocerebeWirolerco 文件夹,即可获取到源代码 更多 X11 技术博客,请参阅 博客导航

    34010编辑于 2025-08-12
  • 来自专栏CSDN搜“看,未来”

    CPU && 多核CPU | 多进程 && 多线程 | 并行 && 并发

    文章目录 区分 CPU && 多核CPU CPU缓存 并行 && 并发 CPU && 多核CPU | 多进程 && 多线程 | 并行 && 并发 之间的关系 Linux下查看CPU相关信息 希望开此篇能帮到你 区分 CPU && 多核CPU 最早意识到这两个概念可能不一样是在什么时候呢,不是在买电脑的时候哈,是在安装虚拟机的时候。 ---- CPU缓存 CPU缓存是位于CPU与内存之间的临时数据交换器,它的容量比内存小的但是交换速度却比内存要快得多。CPU缓存一般直接跟CPU芯片集成或位于主板总线互连的独立芯片上。 ---- CPU && 多核CPU | 多进程 && 多线程 | 并行 && 并发 之间的关系 1、进程的运行不仅仅需要CPU,还需要很多其他资源,如内存啊,显卡啊,GPS啊,磁盘啊等等,统称为程序的执行环境 要么咱手动多开几个进程,要么fork出子进程

    5.1K41发布于 2021-10-09
  • 来自专栏C++/Linux

    【Linux修炼】11.进程的创建、终止、等待、程序替换

    进程终止 2.1 进程退出码 2.2 进程如何退出 3. 进程等待 3.1 进程等待的原因 3.2 进程等待的方法 3.3 再谈进程退出 3.4 进程的阻塞和非阻塞等待 4. 在linux中fork函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。 而由于子进程,父进程想具体调用某一个子进程时就需要这个子进程得有一个名字才能调用这个子进程,因此给父进程返回对应子进程的pid。 3. 这就是父进程通过进程等待回收了僵尸进程(子进程)。 2. 如果子进程出异常了,那么父进程也能够抓到,为了演示这种情况我们在子进程中增加一个野指针的错误: 此时的退出码为0,代表的是子进程的退出码,而终止信号是11号错误,对于异常的进程退出,他的退出码是没有意义的

    6.6K00编辑于 2023-03-28
  • 来自专栏拭心的安卓进阶之路

    Android 进阶11进程通信之 ContentProvider 内容提供者

    ContentProvider 简介 作为安卓 F4,ContentProvider 其实是比较低调的一个,日常开发中使用的频率也没那三位。 它的诞生就是为了给不同应用提供内容访问,自然在我们研究的“多进程通信方式”之中。 ContentProvider 封装了数据的跨进程传输,我们可以直接使用 getContentResolver() 拿到 ContentResolver 进行增删改查即可。 ,因此这里将 provider 声明为另外一个进程 android:process=":provider"。 我们在另外一个进程的 provider 中打了些 Log,可以看到被调用了: ?

    3.1K100发布于 2018-01-05
  • 来自专栏林德熙的博客

    dotnet X11屏触摸行为测试

    故事的背景是我在给 Avalonia 加上触摸尺寸的支持时,代码审查过程中大佬提出了在屏上的 X11 行为问题,为此我找了两个触摸屏进行测试 X11屏触摸行为。 /etc/debian_version 获取 debian 版本号,输出信息如下 >$ cat /etc/debian_version bullseye/sid bullseye 是 debian 11 18950.00/10000 = 1.895 米 由于 CVT 的设备报告的逻辑值和物理值都是相同的最大值最小值,因此以上代码我不确定拿到的是逻辑值还是物理值 通过以上代码也可以看到,我无法直接获取到正确的屏不同尺寸的设备的多个屏幕的物理尺寸 文档,所获取的是椭圆长轴,将其当成触摸宽度是不准确的 校准屏幕 在我的设备上,发现触摸屏的触摸输入和对应的屏幕显示没有对齐,需要根据以下大佬们的博客进行修复 Linux处理触屏的终极解决方案 香风家的火柴盒 github.com/lindexi/lindexi_gd.git git pull origin dedfc0ec3a3c8d04e7bec5276fe5bcaa926fe6e9 获取代码之后,进入 X11

    40110编辑于 2024-07-31
  • 来自专栏沉浸式AI

    告别DeepSeek卡顿,直接提速11

    DeepSeek 提出的NSA(原⽣稀疏注意⼒机制),像给模型装上了“智能滤网”,既能抓住关键信息,又大幅降低了计算负担,速度直接提升 11.6 倍。

    71410编辑于 2025-02-21
领券