- 7
- 0
- 约2.16万字
- 约 6页
- 2016-09-01 发布于河南
- 举报
PHP下通过系统信号量加锁方式获取递增序列ID
PHP下通过系统信号量加锁方式获取递增序列IDPHP下通过系统信号量加锁方式获取递增序列ID.txt前一阵子,设计LAJP时需要在PHP中生成唯一ID,看似,,,,菜一碟却着实让我为难了,在Java中一个同步方法即可搞定的事,但在PHP中却没有好的解决思路。--在网上搜了搜,有两个办法但都不太好:一个是简单的以进程ID+时间戳,或进程ID+随机数来产生近似的唯一ID,虽简单但对于追求“完美”的我不愿这样凑合,再说Apache2以后进程会维持相当长得时间,生成的ID发生碰撞的几率还是比较大的;第二个思路是通过Mysql的自增字段,这个就更不能考虑了,效率低不说,我的设计里压根就没数据库。递增ID的获取是个过程:1. 从全局某个存储中读取ID2. 给ID加13. 将ID重新存入全局存储在多进程或线程的程序中需要将上述3步作为单步的原子操作,才能保证ID的唯一。Java中很好解决,这是因为Java程序大多以多线程方式运行,每个线程都能共享Java进程中的变量,并能方便的加线程锁控制线程的运转同步。在PHP中ID全局存储没问题,可以放在session中,大不了放在文件中,但进程间同步就是问题了。实际上进程调度、管理是操作系统内核必须实现的功能,今天介绍的信号量(也称为信号灯)就是在Unix/Linux上解决进程同步的一项技术。信号灯原是用在铁路上的管理机制,我们今天看到的铁路大多是双线并行
您可能关注的文档
最近下载
- 康明斯PT泵燃油系统.ppt VIP
- 默纳克荣耀柜大功率别墅梯配一体化轿顶检修盒(MCTC-CTW-B3&A9适用)电气原理图(含手拉门)_中文版.pdf VIP
- 2026【期中】家长会:致敬每位不容易的家长 课件(共37张PPT).pptx VIP
- 基于stm32肺活量测量装置设计.docx
- 2026年职业技能中医康复理疗师-理论知识参考题库含答案解析(5卷题有答案).docx VIP
- 要想知道自己姓氏来源去看:四川渠县百家姓姓氏探源.pdf VIP
- 小儿肾积水诊疗指南(2025年版).docx VIP
- 基于低碳理念的城市滨水公园景观设计——以宁德时代工业文化园设计为例.pdf
- 产品供货紧急情况应对预案.docx VIP
- (2025春新版本)人教版七年级生物下册全册教案.docx
原创力文档

文档评论(0)