有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Python中Java volatile的等价物

Python是否具有Java volatile概念的等价物

在Java中有一个关键字volatile。据我所知,当我们在声明变量时使用volatile时,对该变量值的任何更改都将对同时运行的所有线程可见

我想知道Python中是否有类似的东西,以便在函数中更改变量的值时,所有同时运行的线程都能看到它的值


共 (1) 个答案

  1. # 1 楼答案

    关键词“全球”就是你想要的:

    import threading
    
    queue = []
    l = threading.Lock()
    
    def f():
        global queue
        l.acquire()
        queue.append(1)
        l.release()
    
    def g():
        print(queue)
    
    threads = [
        threading.Thread(target=f),
        threading.Thread(target=g)
    ]
    for t in threads:
        t.start()
    for t in threads:
        t.join()