Python实现进程以及应用

本文深入探讨了进程和线程的概念,详细介绍了Python中进程和线程的创建方法,包括进程PID的获取,以及如何使用进程计算100000内的质数之和和计算时间。通过实例演示,读者可以更好地理解进程和线程的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、进程线程介绍

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

2、python进程创建

import os
import time
pid = os.fork()
if pid < 0:
    print('Create prcess failed')
elif pid == 0:
    # 子进程执行部分
    time.sleep(3)
    print('The new Process')
else:
    # 父进程执行部分
    time.sleep(4)
    print('The old Process')
print("Fork test over")

3、python线程创建增强版

import os, time
print("=========================")
a = 1
pid = os.fork()         # 创建进程
if pid < 0:
    print("Error")
elif pid == 0:
    print('Child process')      # 子进程
    print("a=", a)      # 父进程中a开辟年空间会被子进程获取
    a = 13230           # 在子进程中修改变量只是修改了自己的空间变量
    print("a=", a)
else:
    time.sleep(1)
    print("Parent process")     # 父进程
    print("a=", a)

4、获取进程PID号

import os,sys
pid = os.fork()     # 创建进程
if pid < 0:
    print("Error")
elif pid == 0:      # 子进程执行过程
    print("Child Process")
    print("Child PID:", os.getpid())    # 子进程PID
    os._exit(0)         # 进程退出
    print("Get parent PID:", os.getppid())  # 子进程获取父进程的PID
else:
    print('Parent Process')
    print("Get Child PID:", pid)                # 子进程PID
    sys.exit("退出")      # 进程退出
    print("Get Parent PID:", os.getpid())       # 父进程PID

5、进程的应用—使用进程计算100000内的质数之和以及计算时间

import time
def timeit(f):
    def warpper(*args, **kwargs):
        start_time = time.time()
        res = f(*args, *kwargs)
        end_time = time.time()
        print("函数执行时间:%.6f" %(end_time-start_time))
        return res
    return warpper
def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, n):
        if n % i == 0:
            return False
    return True
@timeit
def prime():
    sum_list = []
    for i in range(1, 100001):
        if is_prime(i):
            sum_list.append(i)
    print(sum(sum_list))
prime()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值