小编tud*_*uya的帖子

Python:os.fork()如何工作?

我在python中学习多处理.我尝试了多处理,在读完多处理模块的源代码之后,我发现它使用了os.fork(),所以我写了一些代码来测试os.fok(),但是我被困了.我的代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import time

for i in range(2):
    print '**********%d***********' % i
    pid = os.fork()
    print "Pid %d" % pid
Run Code Online (Sandbox Code Playgroud)

我认为每次打印都会执行两次,但执行三次.我无法理解这是如何工作的?我读过这个需要知道fork是如何工作的?
从这篇文章中说它也将被执行两次,所以我被困......

python fork

20
推荐指数
2
解决办法
3万
查看次数

如何strace php-fpm 进程?

我在 php 环境中使用 nginx+php-fpm 并且我想跟踪 php 脚本执行,但是有很多 php-fpm worker,那么我如何知道哪个 php-fpm worker 正在处理脚本?
如果我应该监视所有 php-fpm 工作器,示例如下:

additional_strace_args="$1"

MASTER_PID=$(ps auwx | grep php-fpm | grep -v grep | grep 'master process'  | cut -d ' ' -f 6)

while read -r pid;
do
    if [[ $pid != $MASTER_PID ]]; then
        nohup strace -r -p "$pid" $additional_strace_args >"$pid.trc" 2>&1 &
    fi
done < <(pgrep php-fpm)
Run Code Online (Sandbox Code Playgroud)

php strace

4
推荐指数
1
解决办法
7889
查看次数

Python Threads对象追加到列表

我在python中学习多线程。我经常看到程序使用多线程时,它将线程对象附加到一个列表中,如下所示:

# imports
import threading
import time

def worker():
    print "worker...."
    time.sleep(30)

threads = []
for i in range(5):
    thread = threading.Thread(target=worker)
    threads.append(thread)
    thread.start()
Run Code Online (Sandbox Code Playgroud)

我认为将线程对象追加到列表是一种好习惯,但是我不知道为什么要这样做?

python multithreading

2
推荐指数
1
解决办法
8819
查看次数

标签 统计

python ×2

fork ×1

multithreading ×1

php ×1

strace ×1