python3 线程比进程的开销小

# -*- coding: utf-8 -*-
from threading import Thread

def func(name):
    print("子线程: %s" %name)

if __name__ == ‘__main__‘:
    t = Thread(target=func, args=("lily",))
    t.start()
    print("主线程")

# 子线程: lily
# 主线程
# -*- coding: utf-8 -*-
from multiprocessing import Process

def func(name):
    print("子进程: %s" %name)

if __name__ == ‘__main__‘:
    p = Process(target=func, args=("lily",))
    p.start()  # 这里需要资源开销比线程大,所以先打印主进程
    print("主进程")

# 主进程
# 子进程: lily

 

第二种开启线程的方法(自定义类,继承Thread类)

# -*- coding: utf-8 -*-
from threading import Thread

class MyThread(Thread):
    def run(self):  # 必须有的方法
        print("子线程: %s" % self.name)

if __name__ == ‘__main__‘:
    t = MyThread()
    t.start()
    print("子线程")

# 子线程: Thread-1
# 子线程

原文地址:https://www.cnblogs.com/lilyxiaoyy/p/11025214.html

时间: 2024-10-28 07:59:54

python3 线程比进程的开销小的相关文章

python3 线程、进程

线程.进程 python由于有全局解释锁(GIL)的原因,Python 的线程被限制到同一时刻只允许一个线程执行这样一个执行,所以妨碍了其真正的使用功效,但是对于IO型程序并没有多少影响,后续说解决办法 线程(对于IO密集型程序可以大幅提高程序运行速度,减少执行时间) python3 目前推荐使用threading import time start = time.time() def look_thread(name): for i in range(5): time.sleep(0.5) p

Java中线程和进程的区别是什么呢?

概念部分:1.进程是系统资源分配的最小单位,线程是CPU执行调度的最小单位(资源调度的最小单位) 2.进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段.堆栈段和数据段,这种操作非常昂贵.而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多. 3.线程之间的通信更方便,同一进程下的线程共享全局变量.静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行.不过如何处理好同

python线程、进程和协程

链接:http://www.jb51.net/article/88825.htm 引言 解释器环境:python3.5.1 我们都知道python网络编程的两大必学模块socket和socketserver,其中的socketserver是一个支持IO多路复用和多线程.多进程的模块.一般我们在socketserver服务端代码中都会写这么一句: server = socketserver.ThreadingTCPServer(settings.IP_PORT, MyServer) Threadi

python之线程、进程和协程

引言 解释器环境:python3.5.1我们都知道python网络编程的两大必学模块socket和socketserver,其中的socketserver是一个支持IO多路复用和多线程.多进程的模块.一般我们在socketserver服务端代码中都会写这么一句:server = socketserver.ThreadingTCPServer(settings.IP_PORT, MyServer)ThreadingTCPServer这个类是一个支持多线程和TCP协议的socketserver,它的

线程、进程、多线程、多进程

http://blog.csdn.net/lishenglong666/article/details/8557215 线程进程的联系和区别 定义: 进程是程序在计算机上的一次执行活动,是系统进行资源分配和调度的一个独立单位:  线程是进程的一个实体,是cpu调度和分派的基本单位,他是比进程更小的能独立运行的基本单位:线程自己基本上不拥有系统资源,只用有点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程: 线程与进程的关系: 1)     一个线程只能属于

Python并发编程之线程池/进程池--concurrent.futures模块

h2 { color: #fff; background-color: #f7af0d; padding: 3px; margin: 10px 0px } 一.关于concurrent.futures模块 Python标准库为我们提供了threading和multiprocessing模块编写相应的多线程/多进程代码,但是当项目达到一定的规模,频繁创建/销毁进程或者线程是非常消耗资源的,这个时候我们就要编写自己的线程池/进程池,以空间换时间.但从Python3.2开始,标准库为我们提供了conc

[Other]面试复习笔记:线程与进程复习

基本概念 1. 进程的基本概念 线程(thread)是进程(processes)中某个单一顺序的控制流,也被称为轻量进程(lightweight processes).进程是表示资源分配的基本单位,又是调度运行的基本单位. 比如: 用户运行自己的程序,系统就创建一个进程,并为它分配资源,包含各种表格.内存空间.磁盘空间.I/O设备等. 然后,把该进程放人进程的就绪队列. 进程调度程序选中它,为它分配CPU以及其他有关资源,该进程才真正运行. 所以,进程是系统中的并发运行的单位. 2. 线程的基本

线程与进程&&线程私有资源

今天讨论一个问题,一同事说一个进程内线程的所有资源都能被彼此共享,我说线程私有堆栈空间不可以,为此争论了几句.今天加班用网上资源重新学习了下,以备以后查看 在多线程环境下,每个线程拥有一个栈和一个程序计数器.栈和程序计数器用来保存线程的执行历史和线程的执行状态,是线程私有的资源.其他的资源(比如堆.地址空间.全局变量)是由同一个进程内的多个线程共享. 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发

Python-网络编程之线程与进程

一.线程与进程的区别 线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间.当进程退出时该进程所产生的线程都会被强制退出并清除.线程可与属于同一进程的其他线程共享进程所拥有的全部资源,但是起本身基本上不拥有系统资源,只拥有一点在运行中必不可少的信息(如程序计数器,一组寄存器和栈). 进程是正在执行的程序实例.进程至少由一个线程组成,线程是最小的执行单元. 二.threading模块 Threading方法: t.start() # 激活线程 t.getName() # 获