/**
* テスト書き込みロック
* スレッド 1 を開く
*/
require("file_lock.php");
$lock = new File_Lock(dirname(dirname(__FILE__)) . "/FileLock.lock");
/**単一スレッドのロック速度は 1 秒あたり 30,000 回です。 **/
/**2 つのスレッドで 20,000 データを書き込み、約 7 秒かかります*/
/**1 スレッドで 10,000 データを書き込むのにかかる時間は約 3.9 秒です。実際には 2 つのファイルが同時に書き込まれるため、より高速になります。*/
/**ロックしない場合、プロセスの書き込みには約 2.8 秒かかります。ロックには代償が伴います。*/
/**ロックがないと、2 つのプロセスの分散はあまり均等ではなくなり、ほとんどのプロセスが競合します。*/
$lock-> ;writeLock();
$lock->increment();
$lock->unlock();
while ($lock->get() usleep(1000);
}
睡眠(1);
echo "n の実行を開始します";
$t1 = マイクロタイム(true);
for ($i = 0; $i {
$lock->writeLock();
$lock->increment(1);
$lock->unlock();
}
$t2 = microtime(true) - $t1;
エコー $t2;
?>
class File_Lock
{
private $name;
プライベート $ハンドル;
プライベート$モード;
function __construct($filename, $mode = 'a+b')
{
global $php_errormsg;
$this->name = $filename;
$path = dirname($this->name);
if ($path == '.' || !is_dir($path)) {
global $config_file_lock_path;
$this->name = str_replace(array("/", ""), array("_", "_"), $this->name);
if ($config_file_lock_path == null) {
$this->name = dirname(__FILE__) 。 "/ロック/" 。 $this->名前;
} else {
$this->name = $config_file_lock_path 。 「/」。 $this->名前;
}
}
$this->mode = $mode;
$this->ハンドル = @fopen($this->name, $mode);
if ($this->handle == false) {
新しい例外をスロー($php_errormsg);
}
}
パブリック関数 close()
{
if ($this->handle !== null ) {
@fclose($this->handle);
$this->ハンドル = null;
}
}
パブリック関数 __destruct()
{
$this->close();
}
パブリック関数 lock($lockType, $nonBlockingLock = false)
{
if ($nonBlockingLock) {
return flock($this->handle, $lockType | LOCK_NB);
} else {
return flock($this->handle, $lockType);
}
}
パブリック関数 readLock()
{
return $this->lock(LOCK_SH);
}
パブリック関数 writeLock($wait = 0.1)
{
$startTime = microtime(true);
$canWrite = false;
do {
$canWrite = flock($this->ハンドル, LOCK_EX);
if(!$canWrite) {
usleep(rand(10, 1000));
}
} while ((!$canWrite) && ((microtime(true) - $startTime) }
/**
* マルチスレッドシステムで番号を記録したくない場合は、
* ロックを開いて、+ MOD を使用してください。ファイルを fopen してもデータは
* 破壊されません。
*
* この関数は、delt 値をインクリメントし、ファイルに保存します。
*
* @param int $delt
* @return int
*/
public function increment($delt = 1)
{
$n = $this->get();
$n += $delt;
$this->set($n);
$n を返します;
}
パブリック関数 get()
{
fseek($this->handle, 0);
return (int)fgets($this->handle);
}
パブリック関数 set($value)
{
ftruncate($this->handle, 0);
return fwrite($this->handle, (string)$value);
}
パブリック関数unlock()
{
if ($this->handle !== null ) {
return flock($this->handle, LOCK_UN);
} else {
true を返します。
}
}
}
?>

explorer.exe是什么进程在我们使用Windows操作系统的时候,经常会听到一个名词"explorer.exe".那么,你是否好奇这个进程到底是什么?在本文中,我们将详细解释explorer.exe是什么进程以及其功能和作用。首先,explorer.exe是Windows操作系统的一个关键进程,它负责管理和控制Windows资源管理器(Window

“com surrogate”是“C:\Windows\System32\dllhost.exe”的进程;出现该进程通常是“COM+”组件停止工作,这个进程占用高甚至直接未响应,这是由于电脑在加载文件图标的时候出现问题,导致电脑变的卡顿,可以在计算机属性设置中解决卡顿问题。

ccsvchst.exe是一种常见的进程文件,它是SymantecEndpointProtection(SEP)软件的一部分,而SEP则是一款由著名的网络安全公司Symantec开发的终端保护解决方案。作为该软件的一部分,ccsvchst.exe负责管理和监控SEP的相关进程。首先,我们来了解一下SymantecEndpointProtection(

在Linux系统中,僵尸进程是已经终止但仍保留在系统中的特殊进程。虽然僵尸进程不会消耗太多资源,但如果数量过多,可能会导致系统资源耗尽。本文将介绍如何正确清除僵尸进程,以确保系统的正常运行。1Linux僵尸进程子进程完成任务后,如果父进程没有及时检查状态,子进程将成为僵尸进程。子进程在等待父进程确认,完成后系统才会回收。否则,僵尸进程会继续悬挂在系统中。要检查系统中是否存在僵尸进程,可通过运行命令top来查看所有正在运行的进程及可能存在的僵尸进程。‘top’命令的结果从上图可以看到Linux中进

如何在Windows11和Windows10中暂停任务管理器进程更新按CTRL+窗口键+删除打开任务管理器。默认情况下,任务管理器将打开“进程”窗口。正如您在此处看到的,所有应用程序都在无休止地移动,当您想要选择它们时,可能很难将它们指向下方。因此,按CTRL并按住它,这将暂停任务管理器。您仍然可以选择应用程序,甚至可以向下滚动,但您必须始终按住CTRL按钮。

“线程”是程序运行时指令流的最小单位。进程是指一个具有一定独立功能的程序,而线程是进程的一部分,描述指令流执行状态;线程是进程中的指令执行流的最小单位,是CPU调度的基本单位。一个线程是一个任务(一个程序段)的一次执行过程;线程不占有内存空间,它包括在进程的内存空间中。在同一个进程内,多个线程共享进程的资源;一个进程至少有一个线程。

本文主要介绍Linux僵尸进程以及清理僵尸进程的方法。1、什么是僵尸进程?Linux中的僵尸进程(Zombieprocesses)有时也被称为失效或死亡进程。它们是已执行完毕的进程,但其条目并未从进程表中删除。1.1进程状态Linux会维护一个进程表,其中包含所有正在运行的进程及其状态。下面简要介绍一下各种进程状态:(1)Running(R):表示这些进程目前正在运行或可运行,用字母R表示。需要说明:进程是R状态,不代表正在运行,代表可被调度。换句话说,进程只有是R状态才可被调度,其他状态要先转

multitip.exe是360内置的广告弹窗进程,其中包括了今日优品、焦点资讯、每日趣玩等广告弹窗;其删除方法:1、找到并删除sesvc.exe文件;2、在原来的目录下建立一个sesvc.exe目录,然后将这个目录的所有用户的“完全控制”权限设置为“拒绝”即可。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SublimeText3 中国語版
中国語版、とても使いやすい

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
