线程

进程是执行中的程序,线程则是轻量级的进程

线程是cpu调度的最小单位,而进程是资源分配的最小单位

进程包含线程,GIL全局解释器锁,只是在Cpython中,

在一个程序中可以同时有多进程和线程

开启多线程

import os
import time
from  threading import Thread
class Tt(Thread):
    def run(self):
        time.sleep(1)
        print('nihao ',os.getpid())

for i in range(10):
    t = Tt()
    t.start()
C:\Users\hc\AppData\Local\Programs\Python\Python36\python3.exe C:/s9/37day/37.py
nihao  12076
nihao  12076
nihao  12076
nihao  12076
nihao  12076
nihao  12076
nihao  12076
nihao  12076
nihao  12076
nihao  12076

Process finished with exit code 0

开启多线程的另一种方法

import time
from threading import Thread
class A(Thread):
    count=0
    def run(self):这里需要注意的是这个函数名必须是run
        A.count+=1
        time.sleep(1)
        print('nihao ')
for  i in range(10):
    t = A()
    t.start()
print(t.count)
C:\Users\hc\AppData\Local\Programs\Python\Python36\python3.exe C:/s9/38day/39.py
10
nihao 
nihao 
nihao 
nihao 
nihao 
nihao 
nihao 
nihao 
nihao 
nihao 

Process finished with exit code 0

真实的线程数要加1 

计算线程数

import threading
import time
def run(i):
    time.sleep(2)
    print(i,threading.currentThread().name,threading.currentThread().ident)
for  i in range(10):
    t = threading.Thread(target=run,args=(i,))
    t.start()
print(threading.active_count())
C:\Users\hc\AppData\Local\Programs\Python\Python36\python3.exe C:/s9/38day/39.py
11
1 Thread-2 7068
0 Thread-1 9276
2 Thread-3 12568
8 Thread-9 8620
7 Thread-8 12560
6 Thread-7 4976
3 Thread-4 11940
9 Thread-10 5768
4 Thread-5 12500
5 Thread-6 9932

Process finished with exit code 0

 

posted @ 2018-02-07 22:28  许光宗  阅读(139)  评论(0编辑  收藏  举报