• 简单的线程说明


    初始多线程

      

    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

    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()

        

  • 相关阅读:
    31天重构学习笔记9. 提取接口
    31天重构学习笔记4. 降低方法
    31天重构学习笔记8. 使用委派代替继承
    31天重构学习笔记11. 使用策略类
    31天重构学习笔记12. 分解依赖
    MyCat:第八章:MyCAT In Action中文版
    HDU 2041 超级楼梯
    CSU 1487 未覆盖顶点数量
    HDU 1712 ACboy needs your help
    HDU 2034 人见人爱AB
  • 原文地址:https://www.cnblogs.com/wuyongcong/p/6512579.html
Copyright © 2020-2023  润新知