小编car*_*sV2的帖子

如何在 PHP 中为每个变量值创建一个互斥锁方法

我需要在 PHP 中有一个互斥体方法,以便它通过变量值保持独占性。这就是具有相同值的线程应该一次进入该方法一个,而具有不同值的线程可以任意访问该方法。

例如,鉴于该方法:

/**
 * @param integer $value
 */
function mutexMethod($value)
{
    // Lock for value $value
    echo 'processing';
    sleep(2);
    echo 'this is so heavy';
    // Unlock for value $value
}
Run Code Online (Sandbox Code Playgroud)

例如(我需要通过 apache 运行它):

time |
0    | php > mutexMethod(1); | php > mutexMethod(2); | php > mutexMethod(1);
1    | processing            | processing            |
2    |                       |                       |
3    | this is so heavy      | this is so heavy      | processing
4    |                       |                       |
5    |                       | …
Run Code Online (Sandbox Code Playgroud)

php mutex semaphore flock

5
推荐指数
1
解决办法
1287
查看次数

xtensa dissembly 中的大括号

我正在反汇编和检查(主要是为了乐趣和学习)为 ESP8266 (Xtensa ISA) 生成的 Arduino 代码。

到目前为止,我一直在跟踪代码,没有出现任何问题,直到4010f4c2主函数中的大括号(位置):

4010f494 <main>:
4010f494:   90a092                  movi    a9, 144
4010f497:   c01190                  sub a1, a1, a9
4010f49a:   00a022                  movi    a2, 0
4010f49d:   236102                  s32i    a0, a1, 140
4010f4a0:   2261c2                  s32i    a12, a1, 136
4010f4a3:   2161d2                  s32i    a13, a1, 132
4010f4a6:   ffc2c5                  call0   4010f0d4 <print_version>
4010f4a9:   202110                  or  a2, a1, a1
4010f4ac:   001045                  call0   4010f5b4 <eboot_command_read>
4010f4af:   00d256                  bnez    a2, 4010f4c0 <main+0x2c>
4010f4b2:   024c                    movi.n  a2, 64
4010f4b4:   fee101                  l32r    a0, 4010f038 <_stext+0x38>
4010f4b7: …
Run Code Online (Sandbox Code Playgroud)

assembly arduino objdump esp8266 xtensa

1
推荐指数
1
解决办法
288
查看次数

标签 统计

arduino ×1

assembly ×1

esp8266 ×1

flock ×1

mutex ×1

objdump ×1

php ×1

semaphore ×1

xtensa ×1