基础知识:https://www.cnblogs.com/SuKiWX/p/8804974.html

 

测试环境

python3.7默认解释器(cpython)
cpu为四核

 

测试代码

#! /usr/bin/python
import time
from threading import Thread
from multiprocessing import Process
CPU_NUM = 4


def my_counter():
    i = 0
    for _ in range(100000000):
        i = i + 1
    return True


def test_for_serial():
    '''线程依次执行测试'''
    start_time = time.time()
    for tid in range(CPU_NUM):
        t = Thread(target=my_counter)
        t.start()
        t.join()
    end_time = time.time()
    print("线程依次执行耗时: {}".format(end_time - start_time))


def test_for_concurrent():
    '''线程同时执行测试'''
    ts = []
    start_time = time.time()

    for tid in range(CPU_NUM):
        t = Thread(target=my_counter)
        t.start()
        ts.append(t)

    for t in ts:
        t.join()

    end_time = time.time()
    print("线程同时执行耗时: {}".format(end_time - start_time))


def test_for_process(base=1):
    '''进程同时执行'''
    ts = []
    start_time = time.time()

    for tid in range(CPU_NUM * base):
        t = Process(target=my_counter)
        t.start()
        ts.append(t)

    for t in ts:
        t.join()

    end_time = time.time()
    print("进程同时执行耗时: {}".format(end_time - start_time))


if __name__ == '__main__':
    test_for_serial()
    test_for_concurrent()
    test_for_process(1)
View Code

相关文章:

  • 2022-01-16
  • 2022-01-03
  • 2021-10-15
猜你喜欢
  • 2021-09-04
  • 2021-11-26
  • 2022-12-23
  • 2022-12-23
  • 2018-05-26
  • 2019-09-03
  • 2018-11-09
相关资源
相似解决方案