我正在开发一款可以通过wi-fi控制的游戏。我计划通过一个PhP Web服务器修改一个文件,这个文件稍后由Python程序在一个检测更新的不断循环中读取。因此,在给定的时刻,python程序和Web服务器都将打开同一个文件,所以我的问题是
这基本上就是我将使用的Python代码:
file = open('file.ext', 'r')
answer = file.readline()
file.close()
以及PhP代码:
$dir = $_POST['dir'];
$file = fopen('file.ext', 'w+');
switch ($dir) {
case 'up':
fwrite($file, 'up');
break;
case 'down':
fwrite($file, 'down');
break;
case 'left':
fwrite($file, 'left');
break;
case 'right':
fwrite($file, 'right');
break;
}
fclose($file);
避免在两个程序中同时访问该文件。因为可能会发生一些问题。想想看,我们在读和写的同时。
这类问题称为“互斥”,意味着只有一个程序(或进程)才能访问某些资源(例如:文件)
因此您可以使用已知的互斥解决方案,如“信号量”或“锁”。有关更多信息,请参见以下链接:
PHP mutual exclusion (mutex)PHP Mutual Exclusion on a File / MySQL reading and executing statements from a file using perlMutual exclusion thread locking, with dropping of queued functions upon mutex/lock release, in Python?http://wiki.bash-hackers.org/howto/mutex
可以从两个不同的程序访问该文件,只要您不尝试从两个不同的程序修改它。 从我看到的代码来看,您只是在阅读Python,而不是在编写—您的编写只是在PHP中进行的。 因此,你不应该有任何冲突。 但是,您仍然应该确保使用文件锁定机制为PHP提供文件写锁定,这样其他程序就不会导致冲突
相关问题 更多 >
编程相关推荐