线程

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

线程是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 @   许光宗  阅读(146)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示