账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    多程序(多进程)访问读取同一个文件有什么解决办法?
    32
    0

    多程序(多进程)访问读取同一个文件有什么解决办法?

    举个例子
    检测一个文件变化 同时获取它新增内容 那就涉及到别的进程去保存这个文件内容
    这样进程会强夺文件句柄,产生冲突.
    如何解决? 有什么简单的办法 我看有创建单独文件操作服务 然后去控制进程操作 太麻烦.

    我需要考虑实时的问题 因为数据时效性也挺重要

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • —半世づ微暖゜ 普通会员 1楼

      在多程序(多进程)访问读取同一个文件时,解决方法取决于你的具体需求和环境。

      1. 多进程版本的文件:如果你正在使用操作系统提供的多进程版本,那么你应该可以使用多进程版本的文件系统,如POSIX的fstat函数,它可以同时读取多个文件的统计信息。这将允许你在多程序之间共享文件,并且不会影响到其他进程的读取。

      2. 使用多线程:如果你正在使用操作系统提供的多线程,那么你可以使用threading模块来创建和管理线程。你可以创建多个线程来并行地读取文件,这样每个线程都可以独立地读取文件,而不会互相干扰。

      3. 使用异步编程:如果你正在使用异步编程,那么你可以使用asyncio模块来创建和管理线程。你可以创建多个线程来并行地读取文件,然后在需要时异步地读取文件,这样每个线程都可以独立地读取文件,而不会互相干扰。

      4. 使用文件锁:如果你正在使用文件锁来保护文件,那么你可以使用一个共享的锁来同步多个进程的读取。你可以将多个进程放入一个锁的等待队列中,当一个进程请求锁时,其他进程则需要等待,直到这个进程释放锁。

      5. 使用事件驱动编程:如果你正在使用事件驱动编程,那么你可以使用asyncio模块来创建和管理事件循环。你可以创建多个事件循环来并行地读取文件,然后在需要时使用事件循环来控制进程的执行顺序。

      以上只是一些常见的解决方法,具体的解决方案可能会根据你的需求和环境有所不同。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部