cari

Rumah  >  Soal Jawab  >  teks badan

Undian acara dan pelaksanaan kod tak segerak dalam nod

Urut utama nod melaksanakan kod js Apabila ia merupakan operasi tak segerak, nod akan menyerahkannya kepada libuv untuk pelaksanaan, dan kemudian melaksanakan kod di sebalik operasi tak segerak. Selepas libuv dilaksanakan, libuv akan diletakkan dalam baris gilir pekeliling akan mempunyai gelung peristiwa (Gelung Peristiwa) serupa dengan while(true) Gelung peristiwa ini wujud dalam utas tunggal nod (iaitu, utas utama). . Gelung benang utama Dapatkan fungsi panggil balik pelaksanaan acara.
Jadi apakah proses gelung utas utama untuk mengambil acara dan melaksanakan kod tak segerak di belakangnya? Adalah mustahil untuk benang melakukan dua perkara pada masa yang sama Selepas melaksanakan kod tak segerak, adakah gelung CPU akan mengambil peristiwa apabila ia melahu?

世界只因有你世界只因有你2697 hari yang lalu848

membalas semua(2)saya akan balas

  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 10:41:22

    Pertama sekali, jelaskan bahawa utas utama tidak akan meninjau apabila terdapat pelaksanaan kod.
    Jadi utas utama akan melaksanakan semua kod awal (kod bukan panggil balik) sebelum mengundi baris gilir acara (baris gilir acara boleh dianggap sebagai objek js apabila ditinjau) kerana secara teori utas utama enjin js hanya boleh mengenali kod js.
    Tetapi selepas kod awal dilaksanakan, utas utama js akan meninjau acara Apabila fungsi panggil balik diperoleh, enjin js tidak akan meninjau semula sehingga kod panggil balik semasa dilaksanakan.
    Untuk meringkaskan, hanya enjin js akan membuat tinjauan apabila tiada kod untuk dilaksanakan Dalam erti kata lain, sentiasa ada satu fungsi panggil balik dalam utas utama js

    balas
    0
  • typecho

    typecho2017-07-05 10:41:22


    Saya rasa artikel ini boleh menyelesaikan keraguan anda

    balas
    0
  • Batalbalas