多线程和多进程不同之处在于,多线程和父线程(进程)是共享内存的,多线程之间是共用一个进程的内存,这也就是一个子线程挂掉,其他子线程也会挂掉的原因
例子:进程定义了一个初始值,t1线程对初始值做加法运算后,t2线程可以直接调用t1线程加法后的结果进行二次运算,因为他们直接是共享同一个进程的内存的
[root@web thread_process]# cat threading10.py #!/usr/bin/env pythonimport threading import timeclass MyThread(threading.Thread):def __init__(self, number, increment):super(MyThread, self).__init__()self.number = numberself.increment = incrementdef run(self):print 'set init number: {0}'.format(self.number)for i in xrange(5):self.number += self.incrementtime.sleep(1)print 'set number to: {0}'.format(self.number)if __name__ == '__main__':number = 0t1 = MyThread(number, 1)t1.start()t1.join() //阻塞进程和t2线程,为的是t2线程获得t1线程运算完的结果t2 = MyThread(t1.number, 3)t2.start() [root@web thread_process]# python threading10.py set init number: 0 set number to: 1 set number to: 2 set number to: 3 set number to: 4 set number to: 5 set init number: 5 set number to: 8 set number to: 11 set number to: 14 set number to: 17 set number to: 20