欢迎访问宙启技术站
智能推送

多线程和多进程相关Python函数

发布时间:2023-06-19 15:46:20

Python是一种非常流行的编程语言,它提供了许多工具和函数来帮助程序员更轻松地编写多线程和多进程代码。多线程和多进程是一种编程技术,可以同时处理多个任务,提高代码的执行效率和性能。在本篇文章中,我们将介绍一些相关的Python函数。

一、多线程相关Python函数

1. threading.Thread(target=function, args=*, kwargs=*, daemon=*)

这个函数用于创建一个新的线程,并返回一个Thread对象。它的参数是线程执行的目标函数,其后是函数的参数。

示例代码:

import threading
import time

def func(name):
  for i in range(3):
    print(name, "running")
    time.sleep(1)

t1 = threading.Thread(target=func, args=("Thread 1",))
t2 = threading.Thread(target=func, args=("Thread 2",))

t1.start()
t2.start()

输出:

Thread 1 running
Thread 2 running
Thread 1 running
Thread 2 running
Thread 1 running
Thread 2 running

2. threading.current_thread()

这个函数返回当前线程的Thread对象。

示例代码:

import threading

def func():
  print("Current thread:", threading.current_thread().getName())

t = threading.Thread(target=func)
t.start()

输出:

Current thread: Thread-1

3. threading.active_count()

这个函数返回当前线程数量。

示例代码:

import threading

def func():
  print("Thread count:", threading.active_count())

t1 = threading.Thread(target=func)
t2 = threading.Thread(target=func)

t1.start()
t2.start()

输出:

Thread count: 3
Thread count: 3

4. threading.enumerate()

这个函数返回一个列表,其中包含所有活动线程的Thread对象。

示例代码:

import threading

def func():
  print("Thread name:", threading.current_thread().getName())

t1 = threading.Thread(target=func)
t2 = threading.Thread(target=func)

t1.start()
t2.start()

print(threading.enumerate())

输出:

Thread name: Thread-1
Thread name: Thread-2
[<_MainThread(MainThread, started 140100252964480)>, <Thread(Thread-1, started 140100245202176)>, <Thread(Thread-2, started 140100236809472)>]

二、多进程相关Python函数

1. multiprocessing.Process(target=function, args=*, kwargs=*, daemon=*)

这个函数用于创建一个新的进程,并返回一个Process对象。它的参数是进程执行的目标函数,其后是函数的参数。

示例代码:

import multiprocessing
import time

def func(name):
  for i in range(3):
    print(name, "running")
    time.sleep(1)

p1 = multiprocessing.Process(target=func, args=("Process 1",))
p2 = multiprocessing.Process(target=func, args=("Process 2",))

p1.start()
p2.start()

输出:

Process 1 running
Process 2 running
Process 1 running
Process 2 running
Process 1 running
Process 2 running

2. multiprocessing.current_process()

这个函数返回当前进程的Process对象。

示例代码:

import multiprocessing

def func():
  print("Current process:", multiprocessing.current_process().name)

p = multiprocessing.Process(target=func)
p.start()

输出:

Current process: Process-1

3. multiprocessing.active_children()

这个函数返回一个列表,其中包含所有活动进程的Process对象。

示例代码:

import multiprocessing

def func():
  print("Process name:", multiprocessing.current_process().name)

p1 = multiprocessing.Process(target=func)
p2 = multiprocessing.Process(target=func)

p1.start()
p2.start()

print(multiprocessing.active_children())

输出:

Process name: Process-1
Process name: Process-2
[<Process(Process-1, started)>, <Process(Process-2, started)>]

4. multiprocessing.cpu_count()

这个函数返回系统中可用的CPU数量。

示例代码:

import multiprocessing

print("CPU count:", multiprocessing.cpu_count())

输出:

CPU count: 8

以上便是Python多线程和多进程相关的函数,可以方便地实现多线程和多进程的编程。这些函数可以在许多不同的应用程序中使用,例如并行计算和网络编程。因此,在编写Python代码时,应该熟悉这些函数的使用方法,以便更好地利用它们。