Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中独立访问共享资源是可能的,或者最好使用JAVA';什么是同步机制?_Java_Php - Fatal编程技术网

在PHP中独立访问共享资源是可能的,或者最好使用JAVA';什么是同步机制?

在PHP中独立访问共享资源是可能的,或者最好使用JAVA';什么是同步机制?,java,php,Java,Php,我正在用PHP开发一个网站,其中一个资源将被多个用户同时查看。我想阻止其他用户查看或购买其他用户即将购买的相同资源。即,我想锁定资源并提供对它的同步访问。是否可以用PHP开发这个东西,或者我必须使用java的线程和同步概念,并通过xml将其与PHP集成。??请告诉我我是否走上了正确的道路 我读过: 'bool sem_acquire(资源$sem_标识符)' 可在php中获得,也可在 <?php $fp = fopen("/tmp/lock.txt", "r+"); if (flock

我正在用PHP开发一个网站,其中一个资源将被多个用户同时查看。我想阻止其他用户查看或购买其他用户即将购买的相同资源。即,我想锁定资源并提供对它的同步访问。是否可以用PHP开发这个东西,或者我必须使用java的线程和同步概念,并通过xml将其与PHP集成。??请告诉我我是否走上了正确的道路

我读过: 'bool sem_acquire(资源$sem_标识符)' 可在php中获得,也可在

<?php

$fp = fopen("/tmp/lock.txt", "r+");

if (flock($fp, LOCK_EX)) {  // acquire an exclusive lock
    ftruncate($fp, 0);      // truncate file
    fwrite($fp, "Write something here\n");
    fflush($fp);            // flush output before releasing the lock
    flock($fp, LOCK_UN);    // release the lock
} else {
    echo "Couldn't get the lock!";
}

fclose($fp);

?>

通过数据库更好地管理它

UPDATE offers SET buyer = ? WHERE id = ? AND buyer IS NULL

当然,然后检查结果。

您应该使用在任何开发环境中可用的本机工具。我对PHP不太熟悉,无法详细说明如何操作,但仅仅为了处理同步而运行单独的系统是毫无意义的,资源争用是任何语言都必须解决的标准问题。数据库事务呢?我们谈论的是什么资源?它能被数据库处理吗?它真的需要是一个文件吗?@IvanHušnjak假设该资源是一个唯一的笔驱动器,其可用性详细信息是从DB动态获取的。我能知道如何使用数据库事务处理这个问题吗。