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()

 

 

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

 

posted @ 2017-07-07 01:20  alben-xue  阅读(202)  评论(0编辑  收藏  举报