Solo un programa de Python se ejecuta en una computadora al mismo tiempo

Solo un programa de Python se ejecuta en una computadora al mismo tiempo

Para realizar la función de ejecutar solo un programa de Python en una computadora al mismo tiempo, se pueden usar bloqueos de archivos para controlar la ejecución del programa. Aquí hay un código de muestra:

import fcntl
import os

# 定义文件锁的路径
lock_file = "/tmp/program.lock"

def run_program():
    # 获取文件锁
    lock = open(lock_file, 'w')
    try:
        fcntl.lockf(lock, fcntl.LOCK_EX | fcntl.LOCK_NB)
        # 执行程序的代码
        print("程序开始执行")
        # 用于模拟程序执行的时间
        os.system("sleep 10")
        print("程序执行完毕")
    except IOError:
        print("程序已经在运行中")
    finally:
        # 释放文件锁
        fcntl.lockf(lock, fcntl.LOCK_UN)
        lock.close()

if __name__ == "__main__":
    run_program()

En este ejemplo, usamos el módulo fcntl para adquirir bloqueos de archivos. Primero defina la ruta de un bloqueo de archivo y luego run_programadquiera el bloqueo de archivo en la función. Si el bloqueo del archivo se puede obtener con éxito, se ejecuta el código del programa; de lo contrario, se emite un mensaje indicando que el programa ya se está ejecutando. Una vez que el programa termina de ejecutarse, se libera el bloqueo del archivo.

De esta manera, no importa cuántas instancias ejecuten este programa al mismo tiempo, solo la primera puede adquirir con éxito el bloqueo del archivo, y las demás instancias se bloquearán hasta que se libere el bloqueo del archivo.

Supongo que te gusta

Origin blog.csdn.net/sinat_35773915/article/details/132081461
Recomendado
Clasificación