Python线程相关(一) 开启线程的两种方式、进程与线程的区别

本文介绍了Python中开启线程的两种方法,包括默认线程和自定义线程类,并强调了线程轻量级和数据共享的特性。同时,探讨了进程与线程的主要区别,如进程间的内存隔离与线程的数据共享空间。

线程理论详见
https://www.cnblogs.com/linhaifeng/articles/7430082.html

1、每个进程内都会有一个默认的线程
2、多线程指得是一个进程里有多个线程
3、线程的最大两个特点:
开启线程开销小;
同一个进程内的多个线程共享数据;

  • 开启线程的两种方式
    开线程的目的:并发执行任务
    没有子线程的概念,在一个进程中的多个线程地位是平等的
    法一:
import time
import random
from threading import Thread

def task(name):
    print('%s is runing' %name)
    time.sleep(random.randint(1,3))
    print('%s is end' %name)
    
    
    
if __name__=='__main__':
    t1=Thread(target=task,args=('alex',))
    t1.start()
    print('主进程')
结果:
alex is runing
主进程
alex is end

法二:自己写一个类

import time
import random
from threading import Thread

class Mythread(Thread):
    def run(self):
        print('%s is runing' %self.name)
        time.sleep(random.randint(1,3))
        print('%s is end' %self.name)
        

    
    
    
    
if __name__=='__main__':
    t1=Mythread()
    t1.name='clt'  #如果没有init名字的话 可以采取这种方法
    t1.start()
    print('主进程')
结果:
clt is runing
主进程
clt is end
  • 进程与线程的区别
    进程之间内存隔离,线程共享数据空间
    1、
from threading import Thread
#import os

n=100

def task():
    global n
    n=0
    
    
    
if __name__=='__main__':`在这里插入代码片`
    t1=Thread(target=task,)
    t2=Thread(target=task,)
    t3=Thread(target=task,)
    t1.start()
    t2.start()
    t3.start()
    
    print('主进程',n)  #此时n=0,在进程中n=100

结果:
主进程 0

2、

import time
import random
from threading import Thread
import os

def task():
    print('%s is runing' %os.getpid())
    time.sleep(random.randint(1,3))
    print('%s is end' %os.getpid())
    
    
    
if __name__=='__main__':
    t1=Thread(target=task,)
    t2=Thread(target=task,)
    t3=Thread(target=task,)
    t1.start()
    t2.start()
    t3.start()
    
    print('主进程')
结果:


14560 is runing
14560 is runing
14560 is runing
主进程
14560 is end
14560 is end
14560 is end
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值