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

初识线程

时间:2018-02-06 16:36:11      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:class   current   bubuko   最小   nbsp   分享   main   包含   com   

进程与线程有很多相似之处

进程 执行中的程序
线程 轻量级的进程

一个进程可以包含多个线程

对于一个人来说,这个人就是一个进程。而一个人可以做很多事情,这每一件事情就是一个线程

进程包含线程,线程在进程中,一个进程内的线程共享这个进程内的代码等,所以这就导致了数据不安全的问题,所以引入了GIL机制(全局解释器锁)这是Cpython解释器加上的,他将进程内的所有代码等加上锁,一次只能由一个线程调用,这样让代码变得安全但是会导致无法并发执行,效率慢

线程:更加轻量级,线程是CPU调度的最小单位,进程是资源分配的最小单位

开启线程的效率要比开启进程快得多,而且cpu在线程之间的切换比在进程之间切换要快得多

在python中threading来调用线程模块

import os
import time
from threading import Thread

class MyThread(Thread):
    def run(self):
        print(aa,os.getpid())
for i in range(10):
    t = MyThread()
    t.start()

技术分享图片

在使用线程模块的时候不用加__name__ == ‘__main__‘

import time
import threading
def func(i):
    time.sleep(0.5)
    print(i,threading.currentThread().name,threading.currentThread().ident)
    # ident 线程id
for i in range(10):
    t = threading.Thread(target=func,args=(i,))
    t.start()

# print(len(threading.enumerate()))  # 返回正在运行着的线程列表
print(threading.activeCount())    #返回正在运行的线程的列表,和总量

 

初识线程

标签:class   current   bubuko   最小   nbsp   分享   main   包含   com   

原文地址:https://www.cnblogs.com/dymlnet/p/8422668.html

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