前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单的线程说明

简单的线程说明

作者头像
Wyc
发布2018-09-11 11:37:46
3020
发布2018-09-11 11:37:46
举报
文章被收录于专栏:Python研发Python研发

初始多线程

代码语言:javascript
复制
import threading


def Process(arg):
    print(arg)

Process(1)     #表示只有一个人去执行Process这个函数



for i in range(10):     #创建十个线程一次次执行Process这个函数
    t = threading.Thread(target=Process, args=(i,))
    t.start()

多线程,多线程有一个好的东西就是线程池。

线程和进程的优缺点:

进程:

  优点:   同时利用多个CPU,能够同时进行多个操作。

  缺点:   耗费资源(重新开辟新的内存)

线程:

  优点:   共享内存,IO操作的时候,创造并发操作。

  缺点:   抢占资源。

进程不是越多越好,CPU个数 = 进程个数(有几个CPU最好创建几个进程)

线程也不是越多越好,具体案例,具体分析,(有几个线程创建几个线程,应为线程请求上下文时非常耗时)

进程和线程的目的是能够提高效率。

单线程和单进程的另一个名字:  主线程,主进程。

主线程可以创建子线程。

在计算机里边执行任务的最小单元是线程。

线程的应用的场景是在IO操作的时候,应为IO操作不用CPU,

IO密集型:   适合用线程,IO(不用CPU)

计算密集型:  适合用进程,计算(用CPU)

GIL: 在python里边叫全局解释器锁,锁一个进程里边的多个线程。

线程锁,threading.Rlock 和 threading.lock

代码语言:javascript
复制
import threading
import time

globals_num = 0
lock = threading.Rlock()

def Func():
    lock.acquire()       #获得锁
    global globals_num
    globals_num += 1
    time.sleep(1)    #等待一秒
    print (globals_num)
    lock.release()        #释放锁
for i in range(10):       #创建十个线程,每个线程都执行一遍Func函数
    t = threading.Thread(target=Func) 
    t.start()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 初始多线程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档