吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1183|回复: 4
收起左侧

[求助] 进程锁和线程锁的问题

[复制链接]
萌新与小白 发表于 2020-11-27 20:42
本帖最后由 萌新与小白 于 2020-11-28 14:51 编辑

用锁,创建进程时args里必须传lock,而创建线程时args传不传lock都不报错,这是为什么?
1楼提醒我发错区了,麻烦版主帮忙移下,感谢二位。@苏紫方璇 @苏紫方璇 不知道at成功没

[Python] 纯文本查看 复制代码
# 创建进程时args不传lock,报错,传不报错
import multiprocessing
import os
import time
def run():
    lock.acquire()
    try:
        print(f'子进程 {os.getpid()}')
        time.sleep(1)
    finally:
        lock.release()
if __name__=='__main__':
    print(f'主进程 {os.getpid()}')
    lock=multiprocessing.Lock()
    process_list=[]
    for i in range(10):
        sub_process=multiprocessing.Process(target=run)
        sub_process.start()
        process_list.append(sub_process)
    for j in process_list:
        j.join()


[Python] 纯文本查看 复制代码
# 创建线程时args传不传lock都不报错
import threading
money = 250
def run(n,lock):
    global money
    for i in range(100000):
        lock.acquire()
        try:
            money = money + n
            money = money - n
        finally:
            lock.release()
if __name__ == '__main__':
    lock = threading.Lock()
    while True:
        t1 = threading.Thread(target=run, args=(10,lock))
        t2 = threading.Thread(target=run, args=(15,lock))
        t1.start()
        t2.start()
        t1.join()
        t2.join()
        if money != 250:
            break
    print(money)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
枫子树 发表于 2020-11-27 23:45
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 萌新与小白 发表于 2020-11-28 14:58
头像被屏蔽
枫子树 发表于 2020-11-28 15:18
 楼主| 萌新与小白 发表于 2020-11-28 15:23
枫子树 发表于 2020-11-28 15:18
回帖输入文字上方有@按钮

我编辑时是这么做的,我以为at成功后名字会变蓝,但没变,所以不知道成功没,现在已经移了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 10:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表