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

进程和创建线程的两种方法(threading.Thread)

时间:2018-06-04 14:18:18      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:rgs   task   int   threading   结合   代理   bsp   art   一个   

进程 如QQ 要以一个整体的形式暴露给操作系统管理,里面包含对各种资源的调用,内存的管理, 网络接口的调用等,进程就是各种资源管理的集合

线程:是操作系统最小的调度单位,是一串指令的结合 

进程 要操作CPU,必须要创建一个线程 

1所以在同一进程里的线程是共享同一块内存空间的

2两个子进程的数据不是共享的,且不能相互访问,线程数据是共享的

3.同一进程的线程之间可以交流,数据共享, 信息传递,两个进程想通信, 必须通过一个中间代理 

4.创建新线程很简单,创建新进程需要对其父进程进行一次克隆 

5.一个线程可以控制和操作其他线程,但是进程只能操作子进程

6.对主线程的修改可能会影响到其他的线程,但是进程只会操作子进程

创建进程的第一种方法 :函数调用 

 

 1 import threading, time
 2 
 3 def run(n, run_time):
 4     print(task run %s%n)
 5     time.sleep(run_time)
 6     print(the run %s%n)
 7 
 8 
 9 
10 
11 
12 m = threading.Thread(target=run, args=(5, 1))  # child thread
13 
14 m1 =threading.Thread(target=run, args=(2, 3))
15 
16 m.start()
17 m1.start()
18 
19 m1.join()  #执行完子线程m1
20 m.join()   #执行完子线程m2
21 
22 
23 print(alex)

创建进程的第二种方法:继承 threading.Thread 

import threading, time

class MyThread(threading.Thread):
    def __init__(self, n, run_time):
        threading.Thread. __init__(self)
        self.n = n
        self.time = run_time


    def run(self):
        print(task run%s%self.n)
        time.sleep(self.time)
        print(the run%s%self.n)

m = MyThread(1, 5)
m1 = MyThread(3, 2)

m.start()
m1.start()

m.join(timeout=2) #执行两秒后就往下执行
m1.join(1)  #执行一秒后就往下执行


print(task done)

 

进程和创建线程的两种方法(threading.Thread)

标签:rgs   task   int   threading   结合   代理   bsp   art   一个   

原文地址:https://www.cnblogs.com/my-love-is-python/p/9132330.html

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