欢迎光临
我们一直在努力

线程和进程介绍以及示例

介绍线程和进程

  • 线程:操作系统中能够进行运算调度的最小单位,也是进程中单一顺序控制单位,一串指令集合。
  • 进程:实际运作单位,如wechat、QQ等,各种资源集合。
  • 进程与进程的内存都是隔离的;同一个进程中的线程共享同一个内存空间。
  • 要操作cpu,就必须先创建线程。进程是不能操作cpu的,只有线程才可以;
  • 读取速度:CPU>RAM>DISK;
  • CPU主频3.2GHz,那么每秒约 27 亿个时钟周期,如果为单核则每个周期执行 1 条指令,则约每秒执行 27 亿条指令。但实际运算速度取决于 CPU 架构、核心数、IPC、缓存和内存等;
  • PID进程id;
    任务管理器
    区别:
  • 内存:一个进程中有主线程,还有其他多个线程,且共享同一个内存;但是进程是独立,内存不可共享;
  • 通信:两个线程可以直接通信;两个进程中想通信需要找代理人;
  • 创建:创建线程很简单,但是创建进程需要克隆其父进程;
  • 操作:一个线程可以控制操作同一个进程下的其他线程;但是进程只能操作其子进程;
  • 影响:修改进程下的线程可能影响其他线程;但是修改进程不影响其子进程
    微信流程:
    你点击微信图标

    操作系统收到请求

    从磁盘找到微信程序

    创建微信进程,分配 PID、内存空间

    把代码和数据从磁盘加载到内存

    创建线程,加入 CPU 调度队列

    CPU 开始执行微信代码

    微信窗口出现
    在这里插入图片描述
  • 示例

    函数形式:

    import threading
    import time
    #启动线程
    def run(n):
    print("task",n)
    time.sleep(2)
    #实例化t1线程、t2线程
    t1=threading.Thread(target=run,args=("t1",))
    t2=threading.Thread(target=run,args=("t2",))
    #启动
    t1.start()
    t2.start()

    类形式:

    import threading
    import time
    #类方式启动线程
    class MyThread(threading.Thread):
    def __init__(self,n):
    super(MyThread, self).__init__()
    self.n=n

    def run(self) > None:
    print("running task",self.n)
    #实例化
    t1=MyThread("t1")
    t2=MyThread("t2")
    #调用启动
    t1.start()
    t2.start()

    在这里插入图片描述

    赞(0)
    未经允许不得转载:171主机测评 » 线程和进程介绍以及示例
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址