0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

セッション管理とスレッドモデル(PHP編)

Last updated at Posted at 2020-12-18

セッション管理とスレッドモデル(PHP編)

結論

複数のセッションの処理はマルチスレッド処理(平行処理)が行われているかもしれないが、同一セッションの内部では処理は一つずつシリアルで処理されているということ。

実験

親のphpでセッションを作成、その後、ko0.phpとko1.phpに対して同時にアクセスされるはずなので、その様子を見てみよう。

oya.php
<?php
echo "<html><head><body>";
echo "SessionId is ";
echo session_id();
echo "<br><hr>\n";
echo "<iframe src=\"ko0.php\"></iframe><br>";
echo "<hr>\n";
echo "<iframe src=\"ko1.php\"></iframe><br>\n";
echo "</body></html>";
?>

ko0.phpとko1.phpは同じ内容で、10秒間スリープするだけの処理

ko0.php
<?php
echo "SessionID is ";
echo session_id();
echo "<br>\n";
echo "start is ";
echo date("H:i:s");
echo "<br>\n";
sleep(10);
echo "  end is ";
echo date("H:i:s");
echo "<br>\n";
phpinfo();
?>

結果

01.jpg

ko0.php が処理されてから、ko1.phpが処理されているのがわかる。

つまり・・・

同一セッションで大量にアクセスしても・・・早く終わるわけではない、ということ

考えてみたら・・・

セッション・オブジェクトに複数スレッドから同時アクセスを制御するようなロック処理がないのだから当然といえば当然か・・・

戻る

セッション管理とスレッドモデル

以上

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?