What is equivalent of the C# lock statement in PHP?

自闭症网瘾萝莉.ら 提交于 2019-12-05 19:24:17

PHP doesn't support multithreading so there's no locking mechanism for objects. If you want to lock a file you could use flock for that. There's no need to lock database as database engines usually can handle multiple connections.

Bare in mind PHP is not multithreaded, so it's unlikely you need anything like this... however, may be needed if you use shared memory, or any other external resources. In such case use smaphores:

http://www.php.net/manual/en/function.sem-acquire.php

http://www.php.net/manual/en/function.sem-get.php

http://www.php.net/manual/en/function.sem-release.php

flock for files.

If you are wanting to use lock in the database, then you would need to use the lock features for those databases. Almost all databases use some form of lock mechanism.

nothing for objects

It has semaphore support

It has flock http://www.php.net/manual/en/function.flock.php

You can do table locking in MySQL.

Like others have answered, since PHP is not multithreaded you do not need to lock on objects. However, if you need to lock on the database you might want to look to transactions. There are many tutorials for doing transactions with PHP and MySQL (and probably for other RMDBS as well).

PHP can run in multi-threaded environments. Also multiple simultaneous processes can be running, even if the web server is not using multiple threads.

In this case, concurrency problems can still happen.

If you want something similar to lock to solve concurrency problems, you can use semaphores: http://www.php.net/manual/en/function.sem-acquire.php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!