HEAP、STACK、QUE、ブラウザの動作原理.

1343 ワード

Pythonで
print(1+1)
time.sleep(1)
print(2+2)
そうすると2 1 4が出てきます
JavaScriptで
console.log(1+1)
setTimeout(function() {}, 1000) (1초 쉬어라)
console.log(2+2) 
もちろんうまく動作しない2 4もうすぐ出ます
console.log(1+1)
setTimeout(function() {console.log(2+2) }, 1000) (1초 쉬어라)
2秒休憩すると4になります
console.log(1+1)
setTimeout(function() {console.log(2+2) }, 1000) (1초 쉬어라)
console.log(3+3)
2 6 1秒休憩して出てきます4
JavaScriptではなぜこうなるのでしょうか?
Stack
console.log(1+1)=>運転完了
consonle.log(2+2)=>を実行します.
console.log(i)=>変数iの変数iはどこですか?
Heap
i={age:20}-->ここで~
j = {name:"kim"}
Stackがコードを実行する場所.
Stackは複数ありません.
1つしかないので、一度に1行のコードしか実行できません
これを単一スレッド言語と呼びます.
彼は一行が1つしか運行できないと言った.
stack
console.log(1+1)
setTimeout(function() {console.log(2+2)}, 1000{
console.log(3+3)
なんだ彼は1秒後に実行したんだ?
それを片付ける
これはここに置いて実行しない
彼女は1秒後に実行するので、あなたは彼女に位置を占めさせますか?
いいえ.
待機室に置いて、スタックごとに子供を動かします.
待機室に閉じ込められた子供たち.
ajax,
アクティブなリスナー、
setTimeout
ベルを鳴らして1秒が過ぎたので、そろそろ実行しなければならないと思います.
スタックに送ります.
キュー待合室(イベントキューと呼ばれるコールバックキュー)
待機終了コード1、待機終了コード2、待機終了コード3
ここから一つずつスタックにアップロードします.
stackに直接送信しなかったのは、stackがもともと忙しい空間だったからだ.
条件は.
スタックが空の場合のみアップロードされます.