在天愿作比翼鸟,在地愿为连理枝——python多任务开发

风吹仙袂飘飖举,犹似霓裳羽衣舞。
玉容寂寞泪阑干,梨花一枝春带雨。
含情凝睇谢君王,一别音容两渺茫。
昭阳殿里恩爱绝,蓬莱宫中日月长。
回头下望人寰处,不见长安见尘雾。
惟将旧物表深情,钿合金钗寄将去。
钗留一股合一扇,钗擘黄金合分钿。
但令心似金钿坚,天上人间会相见。
临别殷勤重寄词,词中有誓两心知。
七月七日长生殿,夜半无人私语时。
在天愿作比翼鸟,在地愿为连理枝。
天长地久有时尽,此恨绵绵无绝期。


1 同步和异步

1.1 串行、并行、并发

串行:

  • 多任务依次执行,上一个没完成不能执行后续任务

并发:

  • 多任务依次执行,过程中多任务可替代(交替)执行
  • 任务间快速切换(非常快),看上去像是同时执行
  • 某时刻单个任务执行,某时段是多个任务执行
  • 同时开始,但不同时执行

并行:

  • 多任务没有顺序同时执行
  • 最终结果跟耗时最长任务有关

1.2 同步和异步

同步:

  • 串行执行过程,协同步调,多个任务按预定先后次序依次执行

异步:

  • 并发和并行过程,多个任务在同一时间段内执行,每个任务都不会等待其他任务

1.3 操作系统的多任务

一般情况下,计算机多任务实现方式:

  • 多进程实现的多任务操作:并行执行(默认)
  • 多线程实现的多任务操作:并发执行(默认)
  • 协程实现的多任务操作:事件处理并发执行(默认)

2 进程多任务

2.1 进程

  • 进程是计算机中一个独立执行的程序单元(每一个进程都有自己独立的内存空间和系统资源)
  • 一个软件(程序)可以包含多个进程
  • 是计算机中最小的数据分配单元
  • 一个程序可包含多个进程,但至少有一个主进程

2.2 基本语法

只有一个进程时:

def test(content):

    while True:
        print(content)


s1 = "风吹仙袂飘飖举,犹似霓裳羽衣舞。"

test(s1)

在这里插入图片描述
两个或以上进程(相当于同时运行多个python文件):

  • python中,多进程使用multiprocessing包
import multiprocessing


def test(content):

    while True:
        print(content)


s1 = "风吹仙袂飘飖举,犹似霓裳羽衣舞。"
s2 = "玉容寂寞泪阑干,梨花一枝春带雨。"

# 多进程运行必须写在if __name__ == "__main__":中
if __name__ == "__main__":
    """main启动方法"""

    # 创建进程
    p1 = multiprocessing.Process(target=test, args=(s1,))  # 也可以使用kwargs(字典参数)的传参方式
    p2 = multiprocessing.Process(target=test, args=(s2,))
    # 启动进程
    p1.start()
    p2.start()

在这里插入图片描述
其中有一个是主进程

使用面向对象实现:

  • run()是固定语法,启动进程会自动执行run()方法中代码
import multiprocessing


class Emperor(multiprocessing.Process):

    def run(self):
        print("含情凝睇谢君王,一别音容两渺茫。")


class Consort(multiprocessing.Process):

    def run(s
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值