【蟒蛇】23、多线程并行执行概念及多线程编程-学Python黑马程序员个人笔记

  1. 参考视频

参考视频

黑马程序员python教程,8天python从入门到精通

# 进程:就是一个程序,运行在系统之上,那么便称之这个程序为一个运行进程,并分配进程ID方便系统管理。
# 线程:归属于进程的,一个进程可以开启多个线程,执行不同的工作,是进程的实际工作最小单位。
# 操作系统中可以运行多个进程,即多任务进行
# 一个进程内可以运行多个线程,即多线程运行
# 进程之间是内存隔离的,即不同的进程拥有各自的内层空间,类似于不同的公司拥有不同的办公场所
# 线程之间是内存共享的,线程是属于进程的,一个进程内的多个线程之间是共享这个进程所拥有的内存空间的。
# 并行执行指同一时间做不同的工作。
# 多个进程同时进行,即不同的程序同时运行,称之为多任务并行执行。
# 一个进程内多个线程同时在运行,称之为多线程并行执行。

# Python的多线程可以通过threading模块来实现

# import threading
#
# thread_obj = threading.Thread([group [, target [,name [, args [, kwargs]]]])
# -group:暂时无用,未米功能的预留参数
# -target:执行的目标任务名
# -args:以元组的方式给执行任务传参
# -kwargs:以宁典方式给执行任务传参
# -name:线程名,一般不用设置
# 启动线程,让线程开始工作
# thread_obj.start()

"""
演示多线程编程的使用
"""
# import time
#
#
# def sing():
#     while True:
#         print('我在唱歌,啦啦啦……')
#         time.sleep(1)
#
#
# def dance():
#     while True:
#         print('我在跳舞,呱呱呱……')
#         time.sleep(1)
#
#
# if __name__ == '__main__':
#     sing()
#     dance()
# 单线程只唱歌
"""
我在唱歌,啦啦啦……
我在唱歌,啦啦啦……
我在唱歌,啦啦啦……
……
"""

# import time
# import threading
#
#
# def sing():
#     while True:
#         print('我在唱歌,啦啦啦……')
#         time.sleep(1)
#
#
# def dance():
#     while True:
#         print('我在跳舞,呱呱呱……')
#         time.sleep(1)
#
#
# if __name__ == '__main__':
#     # 创建一个唱歌的线程
#     sing_thread = threading.Thread(target=sing)
#     # 创建一个跳舞的线程
#     dance_thread = threading.Thread(target=dance)
#
#     # 让线程去干活吧
#     sing_thread.start()
#     dance_thread.start()
"""
我在唱歌,啦啦啦……
我在跳舞,呱呱呱……
我在唱歌,啦啦啦……
我在跳舞,呱呱呱……
我在唱歌,啦啦啦……
我在跳舞,呱呱呱……
……
"""

# 需要传参的话可以通过:
# args参数通过元组(按参数顺序)的方式传参
# 或使用kwargs参数用字典的形式传参

import time
import threading


def sing(msg):
    while True:
        print(msg)
        time.sleep(1)


def dance(msg):
    while True:
        print(msg)
        time.sleep(1)


if __name__ == '__main__':
    # 创建一个唱歌的线程
    sing_thread = threading.Thread(target=sing, args=('我要唱歌,哈哈哈',))  # 带上逗号变成元组
    # 创建一个跳舞的线程
    dance_thread = threading.Thread(target=dance, kwargs={'msg': '我在跳舞,啦啦啦'})

    # 让线程去干活吧
    sing_thread.start()
    dance_thread.start()

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 3415226167@qq.com
资源 相册