• 18 11 16 网络通信 ---- 多线程 同步概念 解决资源互斥的问题


    ---恢复内容开始---

    在多任务中  由于线程是分步执行  所以在很多线程执行的时候 会对全局变量造成很大的影响  如图中 线程一执行完一二步中 跳过第三部  而跑到线程二去执行 就会造成  全变量不稳定 

    引进   上锁 功能可以 不仅多线程 还能 把一个运行完再到下一个

    import threading
    import time
    
    # 定义一个全局变量
    g_num = 0
    
    
    def test1(num):
        global g_num
        # 上锁,如果之前没有被上锁,那么此时 上锁成功
        # 如果上锁之前 已经被上锁了,那么此时会堵塞在这里,直到 这个锁被解开位置
        mutex.acquire()
        for i in range(num):
            g_num += 1
        # 解锁
        mutex.release()
        print("-----in test1 g_num=%d----" % g_num)
    
    
    def test2(num):
        global g_num
        mutex.acquire()
        for i in range(num):
            g_num += 1
        mutex.release()
        print("-----in test2 g_num=%d=----" % g_num)
    
    
    # 创建一个互斥锁,默认是没有上锁的
    mutex = threading.Lock()
    
    
    def main():
        t1 = threading.Thread(target=test1, args=(1000000,))
        t2 = threading.Thread(target=test2, args=(1000000,))
    
        t1.start()
        t2.start()
    
        # 等待上面的2个线程执行完毕....
        time.sleep(2)
    
        print("-----in main Thread g_num = %d---" % g_num)
    
    if __name__ == "__main__":
        main()

     编辑好的 软件跑网络助手报错  后面发现在网络调试助手里面  默认的IP地址  尽然是以  162  开头的

    进入 cmd  通过命令 ipconfig/all

     

    发现首选的才是  自己的正真ip地址

    ---恢复内容结束---

  • 相关阅读:
    反转链表 16
    CodeForces 701A Cards
    hdu 1087 Super Jumping! Jumping! Jumping!(动态规划)
    hdu 1241 Oil Deposits(水一发,自我的DFS)
    CodeForces 703B(容斥定理)
    poj 1067 取石子游戏(威佐夫博奕(Wythoff Game))
    ACM 马拦过河卒(动态规划)
    hdu 1005 Number Sequence
    51nod 1170 1770 数数字(数学技巧)
    hdu 2160 母猪的故事(睡前随机水一发)(斐波那契数列)
  • 原文地址:https://www.cnblogs.com/fromlantianwei/p/9969858.html
Copyright © 2020-2023  润新知