码迷,mamicode.com
首页 > 编程语言 > 详细

Day10 多线程理论 开启线程

时间:2017-09-04 11:56:30      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:开始   ini   开启   log   tar   方式   bsp   nbsp   running   

多线程:

多线程和多进程的不同是他们占用的资源不一样,

一个进程里边可以包含一个或多个进程,

进程的开销大,线程的开销小。

打个比方来说:创建一个进程,就是创建一个车间。创建一个线程,就是在一个车间创建一个流水线。

 


 

怎么去开启一个线程:

方法一(直接用默认的类):

 1 开启线程的方式一:使用替换threading模块提供的Thread
 2 from threading import Thread
 3 from multiprocessing import Process
 4 
 5 def task():
 6     print(is running)
 7 
 8 if __name__ == __main__:
 9     t=Thread(target=task,)
10     # t=Process(target=task,)
11     t.start()
12     print()

方法二(自己定义一个类,继承系统的类):

 1 #开启线程的方式二:自定义类,继承Thread
 2 from threading import Thread
 3 from multiprocessing import Process
 4 class MyThread(Thread):
 5     def __init__(self,name):
 6         super().__init__()    #不破坏原有的类
 7         self.name=name
 8     def run(self):
 9         print(%s is running %self.name)
10 
11 if __name__ == __main__:
12     t=MyThread(egon)
13     # t=Process(target=task,)
14     t.start()
15     print()

 


 

在同时开始多个线程和多个进程的时候,多个线程的pid是不一样的,多个线程的pid是一样的。

可以利用这段代码测试下:

from threading import Thread
from multiprocessing import Process
import os

def task():
    print(%s is running %os.getpid())

if __name__ == __main__:
    # t1=Thread(target=task,)
    # t2=Thread(target=task,)
    t1=Process(target=task,)
    t2=Process(target=task,)
    t1.start()
    t2.start()
    print(,os.getpid())

 

多个线程是共享同一个进程内的资源的。

 

Day10 多线程理论 开启线程

标签:开始   ini   开启   log   tar   方式   bsp   nbsp   running   

原文地址:http://www.cnblogs.com/sexiaoshuai/p/7472687.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!