zoukankan      html  css  js  c++  java
  • 线程_互斥锁_Lock及fork创建子进程

    """
    创建锁  mutex = threading.Lock()
    锁定  mutex.acquire([blocking])
            当blocking为True时,当前线程会阻塞,直到获取到这个锁为止
            默认为True
            当blocking为False时,当前线程不会阻塞
    释放  mutex.release()
    """
    from threading import Thread,Lock
    g_num = 0
    def test1():
        global g_num
        for i in range(100000):
            mutexFlag = mutex.acquire(True)#通过全局变量进行调用函数
            # True会发生阻塞,直到结束得到锁为止
            if mutexFlag:
                g_num += 1
                mutex.release()
        print("test1--g_num = %d"%(g_num))
    def test2():
        global g_num
        for i in range(100000):
            mutexFlag = mutex.acquire(True)
            if mutexFlag:
                g_num += 1
                mutex.release()
        print("----test2---g_num = %d "%(g_num))
    mutex = Lock()
    p1 = Thread(target=test1,)
    # 开始进程
    p1.start()
    p2 = Thread(target=test2,)
    p2.start()
    print("----g_num = %d---"%(g_num))

    fork创建子进程
    import os
    # fork()在windows下不可用
    pid = os.fork()#返回两个值
    # 操作系统创建一个新的子进程,复制父进程的信息到子进程中
    # 然后父进程和子进程都会得到一个返回值,子进程为0,父进程为子进程的id号
    if pid == 0:
        print("哈哈1")
    else:
        print("哈哈2")

    2020-05-07

     

  • 相关阅读:
    7-2 一元多项式的乘法与加法运算 (20 分)
    cvc-complex-type.2.4.a: Invalid content was found starting with element(servlet)
    MOOC 2.3 队列
    MOOC 2.2 堆栈
    MOOC 2.1 线性表及其实现
    MOOC 1.3 最大子列和
    计时程序
    MOOC 1.1 什么是数据结构
    poj3253
    二分法查找——对数
  • 原文地址:https://www.cnblogs.com/hany-postq473111315/p/12845573.html
Copyright © 2011-2022 走看看