linux学习目标day03(多任务编程)

1.能够知道多任务的执行方式

并行与并发

2.能够知道进程的作用

每个进程可以各自运行,执行各自的任务,多进程可实现多任务

3.能够使用多进程完成多任务

import time
# 1. 导入进程包
import multiprocessing 
def sing():
    """唱歌任务"""
    for i in range(1, 6):
        time.sleep(1)  # 休眠1秒,模拟耗时操作1秒
        print("正在唱歌...%d" % i)
def dance():
    """跳舞任务"""
    for i in range(1, 6):
        time.sleep(1)  # 休眠1秒,模拟耗时操作1秒
        print("正在跳舞...%d" % i)
if __name__ == '__main__':
    # 2. 创建子进程

4.能够知道如何获取进程编号

import os
os.getpid()  # pid : process id
os.getppid()  # ppid : parent process id

5.能够写出进程执行带有参数的任务

import multiprocessing


def worker(a, b, c, *args, **kwargs):
    print(a)
    print(b)
    print(c)
    print(args)
    print(kwargs)


if __name__ == '__main__':
    # 创建子进程

6.能够知道进程之间不共享全局变量

不共享全局变量

7.能够知道线程的作用

多线程可以完成多任务

8.能够使用多线程完成多任务

import time
import threading  # 导入线程模块

def sing():
    """唱歌任务"""
    for i in range(5):
        time.sleep(1)  # 休眠1秒 ,模拟耗时的操作1秒
        print('唱歌任务...', i)
        print(threading.current_thread().name)

def dance():
    """跳舞任务"""
    for i in range(5):
        time.sleep(1)  # 休眠1秒 ,模拟耗时的操作1秒
        print('跳舞任务...', i)
if __name__ == '__main__':
    # 2. 创建子线程并指定要执行的任务
    t1 = threading.Thread(target=sing)
    t2 = threading.Thread(target=dance)

    # 3.执行子线程
    t1.start()
    t2.start()

9.能够写出线程执行带有参数的任务

import threading


def worker(a, b, c, *args, name='佚名', **kwargs):
    print(a)
    print(b)
    print(c)
    print(args)
    print(name)
    print(kwargs)


if __name__ == '__main__':
    # 创建子线程
    t1 = threading.Thread(target=worker, args=(1, 2, 3, 4, 5, 6),
                          kwargs={'name': '小王', 'age': 20})
    # 运行子线程
    t1.start()

10.能够知道线程之间执行是无序的


11.能够知道线程之间共享全局变量


12.能够知道互斥锁的作用

能够保证多个线程访问共享数据不会出现数据错误问题

你可能感兴趣的:(学习)