python_basic_08(零基础---socket基本使用)

适合零基础学习的—关于多任务-线程的简单练习:

import threading
import time
# 定义一个全局变量
g_num = 0
mutex = threading.Lock()  # 定义一个锁

def test1(num):
    global g_num

    for i in range(num):
        mutex.acquire()  # 上锁
        g_num += 1
        mutex.release()  # 解锁
    print("-----in test1 g_num = %d" % g_num)
    # g_num +=1在真正的执行的时候会解析成很多句话
    # 例如:(1)获取g_num的值     (2)把获取的值 +1  (3)把第2步的结果存储到g_num中

def test2(num):
    global g_num

    for i in range(num):
        mutex.acquire()  # 上锁
        g_num += 1
        mutex.release()   # 解锁
    print("-----in test1 g_num = %d" % g_num)


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 = %d" % g_num)


if __name__ == '__main__':
    main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值