検索
ホームページバックエンド開発PHPチュートリアル(再投稿) 興味深い記事: 兄さん、私はスレッドです

(再投稿) 興味深い記事: 私はスレッドです

差出人: プログラマー離職率 (WeChat ID: coderising)

著者: IBM Liu Xin

私はスレッドです、生まれたときに番号が割り当てられました: 0x3704、そして私は私は暗い部屋に入ると、そこには私と全く同じ仲間がたくさんいました。

私の仲間 0x6900 は長い間留まっており、人生の浮き沈みを感じながら私にこう言いました。

私たちのスレッドの運命はパッケージを処理することです。 荷物を扱ったらすぐにここに戻ってこなければ、二度と戻って来れないかもしれません。

パッケージ、どのパッケージですか?

「心配しないでください、すぐにわかります、私たちはここで怠け者を育てていません。」

案の定、間もなく家のドアが開き、激しい-探している男が叫びました:

"0x3704、出てきて!"

出てくるとすぐに重い荷物が詰め込まれていて、そこには説明書が書かれた紙がありました。

"急いでこのパッケージを処理してください。"

"処理する場所"

"指示に従って、まず準備ができたワークショップに行きます"

案の定、地面に標識の矢印があり、それに従って広い明るい部屋に行きました。ここにはすでにたくさんの糸があり、まるでいつでも先へ急ぐ準備ができているかのように緊張していました。

入るとすぐにアナウンスが聞こえました:「0x3704、作業場に入ってください」

私は急いで前に歩きました、そして私の後ろの多くの人がコメントしました:

"彼はとても幸運です さて、「

」が準備完了状態になるとすぐに実行できることは重要ですか?「

」いいえ、優先度がどれだけ高いかを見てください。 🎜>

目の前にあるのはとても美しいワークショップです。古いスレッドがいつもうるさいのも不思議ではありません。ここに永遠に居られたらいいのにと思います。

ここの空間は広く、景色は良く、空気は新鮮で、鳥はさえずり、花は香りが良く、見たこともない人がたくさんいて、ウェイターのように私にサービスを待っています。

それらには番号もあり、さらに重要なのは、それぞれにハードディスク、データベース、メモリ、ネットワーク カードというラベルが付いていることです。 . .

今は理解できません。手順を見てみましょう:

ステップ 1: パッケージからパラメータを取り出します

パッケージを開くと、中に HttpRequest オブジェクトがあり、userName とpassword の 2 つのパラメータを取得できます

第 2 ステップ: ログイン操作を実行します

ああ、誰かがログインしようとしているようです。ユーザー名とパスワードをその人に渡しました。彼はデータを受け取り、ゆっくりと去っていきました。

なぜ彼はそんなに遅いのですか?でも、とにかく3番目のステップを実行できないので、しばらくワークショップにいてもいいですか?

このとき、ワークショップ内で放送が鳴りました:

「0x3704、私は CPU、実行している手順を覚えておいて、すぐに荷物を持って立ち去ってください。」

ゆっくり片付け始めました

「他の糸がすぐ入ってくるから早くして」

この作業場を出て、また大きな部屋に来ました、たくさんの糸がありますスレッドはこちら ゆっくりとお茶を飲みながらトランプをする。

「お兄さん、何もすることはないんですか?」

「あなたはここに来たのは初めてです、私がデータベースサーバーからのデータを待っていることを知らないのですね!」彼らは私たちの何十倍も遅いと言われています。ここでゆっくり休んでください。「

」「ここの誰かがシステムにログインするのがそんなに遅いのですか?」

「心配しないでください、あなたは人間の世界について聞いたことはありません。ある日、CPU にとっては 1 年ですか? ここでは時間を測定するためにナノ秒とミリ秒を使用します。世界で 1 秒を待っています私たちにとっては数日分です。遅すぎます。「

ちょっとお昼寝してください。どれくらい時間がかかったのかわかりませんが、スピーカーが再び放送を開始しました。

「0x3704、あなたのデータはここにあります。行って実行してください。」

振り返って CPU ワークショップに駆け寄ると、ここにいる人は出入りしかできません!

後ろから爆笑が聞こえました:

「彼は確かに新入社員です。準備の整った作業場に行かなければならないとは知りませんでした。」

それで彼は準備が整った場所のワークショップに急いだのですが、今回はあまり幸運ではなく、再び CPU ワークショップに呼ばれるまで長い間待ちました。

待っている間、誰かがささやいているのが聞こえました:

「最近スレッドが殺されたって聞いた?」

「なぜ?」

「これ」男は CPU ワークショップに留まり、CPU 使用率を 100% に引き上げ続けた後、殺されました。"

"彼を殺した後、どこへ行ったのですか?"

"多分それはゴミだったでしょう。

私は心の中で震え、すぐに対処を続けました。さらにアクションブロックを受け入れ、ログインの 2 番目のステップが成功しました

ステップ 3: ログイン成功後にホームページを構築する

このステップは、大量の HTML が必要となるため、少し時間がかかります。誰がコードを書いたのか分からないまま対処するのは面倒です。

緊張して HTML を作成していると、CPU が呼び出しを開始しました:

「0x3704、私は CPU、実行している手順を覚えておいて、すぐにパッケージを持って帰ってください。」

「なぜですか?」

「各スレッドは一定期間のみ CPU 上で実行できます。時間が経過すると、他のスレッドが使用する必要があります。準備ができたワークショップに行き、 「

これで、この 2 つの準備完了状態を何回実行したかわかりませんが、ようやくインストール ステップ リストの作業が完了しました。

最後に、HTML を含むパッケージが正常に返送されました。

ログイン後に何をするかについては、私は気にしません。

暗い部屋に戻ろうとしています。ここを離れるのは耐えられません。

しかし、いくつかのスレッドに比べれば、私はまだ幸運です。実行後に完全に破壊されますが、私はまだ生きています。

暗い部屋に戻ると、古いスレッド 0x6900 が尋ねました:

「どうでしたか? 初日はどうでしたか?」

」第一に、いつ処刑に選ばれるかわかりません。第二に、処刑のプロセス中はいつでも中断される可能性があります。 CPU ワークショップを放棄します。

第三に、ハードディスクが出現すると、データベースなどの時間のかかる操作を CPU に任せて待機させる必要があります。 「

」 若者はよく理解しています。 >「なぜ多くのスレッドが実行後に死ぬのか理解できません。なぜ私たちはまだ生きているのですか?」

「まだわかりません。不死性は私たちの特権です。ここにはスレッド プールと呼ばれる正式な名前があります。」 !"

平凡な日々が毎日こんな感じ 昔は糸のように荷物を受け取って処理して薄暗い家に帰るのが日常だった: スレッド プール。

ある日、私が戻ってきたとき、兄弟が「今日はゆっくり休んでください、明日は最もクレイジーな日になるでしょう」と言っているのを聞きました。

カレンダーを見てみると、明日は11月11日です。

案の定、真夜中を過ぎた頃、彼らは大量の荷物に対処するために、必死で荷物を配達していた。スレッドプールには誰も空いていませんでした。全員がパッケージの処理に出かけました。それでも、CPU ワークショップの使用率は非常に高く、ハードドライブは異常なほど点滅しています。は未だに処理が終わらず、山のように積まれています。

選択肢がありません。これらのパッケージのほとんどは単にページを閲覧し、注文し、購入し、購入するだけです。

どれくらい時間がかかったのかわかりませんが、バオバオ山はついにゆっくりと消えていきました。

やっと一息つけることができたこの日のことは一生忘れないと思います。

この出来事を通して、私は自分が住んでいる世界を理解しました。これは電子商取引ウェブサイトだということです。

私の毎日の仕事は、ユーザーのログイン、閲覧、ショッピング カート、注文、支払いを処理することです。

スレッドプールのベテラン 0x6900 に尋ねました。「どれくらいの時間作業しなければなりませんか?」

「システムが再起動するまで待たなければなりません」、 0x6900 は言いました

" システムの再起動を経験したことがありますか? "

" どうしてそんなことが可能なのでしょうか?、システムの再起動は私たちの死の瞬間、つまり世界の終わりです。一度再起動すると、 、スレッドプール全体が破壊され、時間も空間もすべてが消えて最初から始まります。「

」いつ再開しますか?「

」 言うのは難しいですが、ただ人生を楽しんでください。あなたの目の前..."

実際、人生は豊かでカラフルです。私のお気に入りのパッケージは写真をアップロードすることです。ネットワークが遅いため、準備ができたワークショップとCPUに留まることができます長い間ワークショップに参加し、たくさんの興味深いスレッドを知ることができました。

たとえば、最後に memecached スレッドに会ったとき、彼は大量のユーザー データが彼を通じてキャッシュされ、それが配布されたと言いました。 多くのマシンで利用可能です!

その後のログイン操作が非常に速くなったのも不思議ではありません。データベースからデータが取得されなくなったことがわかりました。他のマシンに行ったことがありますか?

彼は、データにアクセスするたびにネットワーク経由でそのマシンに GET と PUT コマンドを送信することしかできないのに、他には何も分からないのはなぜだろうと言いました。

たとえば、前回待機中にデータベース接続スレッドに遭遇したとき、スレッド プールとほぼ同じである接続プールもあることを知りました。

彼は、一部の荷物が非常に変態的だったので、1 年分の注文データまでチェックしたと言い、私は死ぬほど疲れました。

私は、あなたをノックダウンします、と言いました。あなたがデータを私に渡した後、私はそれを HTML に組み立てる必要があります。

JDBC 接続をより簡単に実現するには、memecached と良好な関係を築き、memecached から直接データを取得し、データベースへの直接呼び出しをできるだけ少なくする必要があると彼は言いました。

はい、はい、重要なのは、事前にデータをキャッシュに入れておかなければならないということです。そうしないと、最初にキャッシュに問い合わせたときにデータがなかった場合でも、検索する必要があります。あなた?

人生なんてこんなものだ、楽しくなければ意味がない?

ある日、私は外で死にそうになり、スレッドプールに戻ることができなくなりました...

実際、私はこの危険を予測できたはずでした。 。

数日前、http から送信されたいくつかの入金および出金パッケージを処理しました。古いスレッド 0x6900 から特に次のような質問がありました。

「これらの荷物を扱うときは特に注意してください。最初にロックを取得する必要があります。アカウントに入金または引き出しをするときは、アカウントをロックする必要があります。そうしないと、他のスレッドがブロックされます。彼はあなたを利用するでしょう。」あなたが待っている間に、私はとても乱暴だったので、あなたを利用しました。」

私を「脅かす」ために、彼は親切な 0x6900 は、次の 2 つのテーブルも提供しました:

1。 >

2. 施錠状況

それを見てとても怖かったですドアロックをしないと、このような重大な事故が発生することが判明しました。

これからは入出金の荷物を見るときは気をつけます 幸いなことに事故はありませんでした。

今日受け取った荷物は、有名な俳優の口座から有名な監督への送金でした。金額は決して小さくありません。 🎜> 私 古いスレッドの指示によると、まず有名な俳優のアカウントをロックし、次に有名な監督のアカウントをロックする必要があります。

しかし、私が予想もしなかったのは、別のスレッド (そう、0x7954) が存在し、同時に監督から俳優にお金を送金していたということでした。

つまり、次のことが起こりました:

最初は何が起こっているのか分からず、待ちの作業場に座って待っていたのですが、待ち時間が長すぎて数十秒! こんなことは今まで経験したことがありません。

その時、私はスレッド 0x7954 を見つけました。彼はそこに座ってのんびりコーヒーを飲んでいました。私は彼とチャットを始めました。

「お兄さん、コーヒーを 8 杯飲んだようですね。」仕事に行かないの?」

「お茶を9杯も飲みませんでしたか?」 0x7954 が答えました。

「ロックを待っています。どの孫がロックを解除しないのか分かりません。」

「私もロックを待っています。どれが分かるか分かりますか?」孫がロックを解除しないので、撲殺します。」 0x7954 には弱さの兆候はありません。

こっそり見てみたら、この男は私が待っていた所長の錠前を腕に抱いていませんでしたか?

明らかに、0x7954 も、私が待ち望んでいたロックを保持しているのを発見しました。

すぐに私たち二人はお互いに譲ることを拒否して喧嘩を始めました

:

「先にロックを渡して、先に終わらせてください」

「いいえ、いつも仕事が終わったらロックを解除します。今は絶対に渡せません」

口論から喧嘩へ立ち上がるのにかかる時間はほんの数秒です。

さらに重要なのは、私たち 2 人がこの有名な監督と俳優のロックを保持しているだけでなく、他の多くのロックも保持しているため、待機スレッドがますます増え、部屋は視聴者でいっぱいです。

最後には、これまで見たことのない究極のボス「オペレーティングシステム」も登場しました。

ビッグボスは結局のところ、情報に詳しいのです。彼はそれを見て鼻を鳴らして、軽蔑的に言いました:

「また行き詰まりです」

そのうちの一人を殺したい、さあ、くじを引きに来てね。」

これにはおしっこが出そうなほど怖かった、とても深刻だ!

慎重にくじを引いて開けてみると、それは「生きる」という文字でした。

ああ、ついに私の命は救われました。

哀れな 0x7954 はすべてのリソースを引き渡すことを強制された後、残念ながら殺されて行方不明になりました。

ディレクターのロックを取得したので、作業を開始できます。

ビッグボスのオペレーティングシステムは一陣の風のように消え、彼の声だけが後ろから聞こえてきました:

覚えておいてください、ここでは私たちは監督>俳優です、状況に関係なく、最初に取得する必要があります監督の承認ロック

監督や俳優だけでなく、他の多くの人々が存在するため、ボスはリソースのサイズを計算するために使用されるアルゴリズムであるテーブルを残しました。計算後は常に計算されます。ロックを取得する方法:

私はスレッドプールに戻り、誰もが私の冒険を知っていました。私の周りに集まり、質問をやめました。

悪質なスレッド スケジューラが Big Boss アルゴリズムを壁に投稿しました。

私たちは毎朝、悪徳不動産業者や美容院のウェイターのように、玄関に立って猿に騙されるように大声で唱えなければなりません:

」 複数のリソース ロック要件 覚えておいてください、Boss のアルゴリズムに従ってサイズを比較し、最大のものからロックする必要があります。

----------------------------------------------- -- ---------

何日も経ってから、私と他のスレッドは奇妙なことを発見しました。それは、パッケージの処理がますます簡単になっているということです

どのようなパッケージであっても、ログイン、ブラウジング、お金の節約など、手順は同じで、固定の HTML ページが返されます

一度覗いてみると、次のように書かれていました:

「このシステムは今夜 0:00 から 4:00 までメンテナンスとアップグレードが行われます。ご迷惑をおかけして誠に申し訳ありません。」

古いスレッド 0x6904 にそのことを伝えに行きました。

「ああ、私たちの命は終わってしまった。もうすぐシステムが再起動され、私たちは消滅してしまうようだ。さようなら、兄弟

システム」ついに再始動の時が来ました。

家の中のものすべてが一つずつ消えていくのが見えました。待機作業場、準備完了作業場、さらには CPU 作業場さえもゆっくりと消えていったのです。

私の周りのスレッド兄弟はどんどん減り、ついに私だけが残りました。

私は野原で叫びました:他に誰かいますか?

答えはありません。

私たちの世代のスレッド プールはその使命を完了しました。

次世代スレッドプールは間もなく生まれ変わります。

(終わり)

この記事を読んで何かを学んだ場合は、記事に誤りがあった場合は、高評価をお願いします。ご指摘ください。

お互いから学び、一緒に進歩しましょう!

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHP:サーバー側のスクリプト言語の紹介PHP:サーバー側のスクリプト言語の紹介Apr 16, 2025 am 12:18 AM

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

PHPとWeb:その長期的な影響を調査しますPHPとWeb:その長期的な影響を調査しますApr 16, 2025 am 12:17 AM

PHPは過去数十年にわたってネットワークを形成しており、Web開発において重要な役割を果たし続けます。 1)PHPは1994年に発信され、MySQLとのシームレスな統合により、開発者にとって最初の選択肢となっています。 2)コア関数には、動的なコンテンツの生成とデータベースとの統合が含まれ、ウェブサイトをリアルタイムで更新し、パーソナライズされた方法で表示できるようにします。 3)PHPの幅広いアプリケーションとエコシステムは、長期的な影響を促進していますが、バージョンの更新とセキュリティの課題にも直面しています。 4)PHP7のリリースなど、近年のパフォーマンスの改善により、現代の言語と競合できるようになりました。 5)将来的には、PHPはコンテナ化やマイクロサービスなどの新しい課題に対処する必要がありますが、その柔軟性とアクティブなコミュニティにより適応性があります。

なぜPHPを使用するのですか?利点と利点が説明されましたなぜPHPを使用するのですか?利点と利点が説明されましたApr 16, 2025 am 12:16 AM

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

神話を暴く:PHPは本当に死んだ言語ですか?神話を暴く:PHPは本当に死んだ言語ですか?Apr 16, 2025 am 12:15 AM

PHPは死んでいません。 1)PHPコミュニティは、パフォーマンスとセキュリティの問題を積極的に解決し、PHP7.xはパフォーマンスを向上させます。 2)PHPは最新のWeb開発に適しており、大規模なWebサイトで広く使用されています。 3)PHPは学習しやすく、サーバーはうまく機能しますが、タイプシステムは静的言語ほど厳格ではありません。 4)PHPは、コンテンツ管理とeコマースの分野で依然として重要であり、エコシステムは進化し続けています。 5)OpcacheとAPCを介してパフォーマンスを最適化し、OOPと設計パターンを使用してコードの品質を向上させます。

PHP対Pythonの議論:どちらが良いですか?PHP対Pythonの議論:どちらが良いですか?Apr 16, 2025 am 12:03 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトの要件に依存します。 1)PHPは、Web開発に適しており、学習しやすく、豊富なコミュニティリソースですが、構文は十分に近代的ではなく、パフォーマンスとセキュリティに注意を払う必要があります。 2)Pythonは、簡潔な構文と学習が簡単なデータサイエンスと機械学習に適していますが、実行速度とメモリ管理にはボトルネックがあります。

PHPの目的:動的なWebサイトの構築PHPの目的:動的なWebサイトの構築Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHP:データベースとサーバー側のロジックの処理PHP:データベースとサーバー側のロジックの処理Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO)PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO)Apr 15, 2025 am 12:15 AM

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 英語版

SublimeText3 英語版

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

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。