zoukankan      html  css  js  c++  java
  • Python多线程(1)

    进程(process)

      进程是程序在内存中的一个实例(进程是程序的一次执行活动,是动态的)

    多道编程的实现就是把多个程序的实例同时在内存中打开,给外部一种并发的假象

    进程的缺陷:

    1,进程在同一时刻只能做一件事情,如果想同时干两件事,进程是无能为力的。

    2,进程在执行任务时,如果阻塞(例如等待I/O),那么整个程序就会被挂起

    线程(thread)

      线程是操作系统可以进行运算调度的最小单位,它被包含在进程中,是进程中的实际运作单位,一条线程指的是进程中一个单一顺序的控制了,

    一个进程可以并发多个线程,每个线程执行不同的任务。

    进程与线程的区别:

    1,线程之间共享内存地址(有进程创建)

    2,线程之间可以直接通信,进程之间不能

    3,创建一个线程非常快速简单,创建一个进程需要拷贝完整的程序数据

    4,线程可以控制同一进程中的其他线程,进程只能控制子进程

    Python实现多线程的模块:

    threading

    简单的多线程并发程序

    1,直接调用  

    #!/usr/bin/env python3
    #-*- coding:utf-8 -*-
    
    import threading,time
    
    def foo(num):
        print("running on number {}.".format(num))
        time.sleep(5)
    
    if __name__ == '__main__':
        t1 = threading.Thread(target=foo,args=(1,))
        t2 = threading.Thread(target=foo,args=(1,))
        t1.start()
        t2.start()
        print(t1.getName())
        print(t2.getName())

    2,继承式

    #!/usr/bin/env python3
    #-*- coding:utf-8 -*-
    
    import threading,time
    
    
    class Mythread(threading.Thread):
        def __init__(self,num):
            threading.Thread.__init__(self)
            self.num = num
    
        def run(self):
            print ("Running at number %s." % self.num)
            time.sleep(5)
    
    t1 = Mythread(1)
    t2 = Mythread(2)
    t1.start()
    t2.start()

    不管通过何种形式来实现多线程,这些程序在运行的时候线程都是并发的。

  • 相关阅读:
    软考解析:2014年上半年下午试题
    软考解析:2014年下半年下午试题
    软考解析:2015年下半年下午试卷
    软考解析:2015年上半年下午试卷
    怎样完善和推广自己的理论模型?
    怎样完善和推广自己的理论模型?
    Android开发——常见的内存泄漏以及解决方案(一)
    聊聊Android5.0中的水波纹效果
    JVM——自定义类加载器
    JVM——Java类加载机制总结
  • 原文地址:https://www.cnblogs.com/alben-cisco/p/7129246.html
Copyright © 2011-2022 走看看