Dart Academy · Oppitunti

Isolate.run nopeaan työn siirtämiseen

Suorita funktio pääisolaatin ulkopuolella

Oppitunti 2/413 vaihetta

Isolate.run nopeaan työn siirtämiseen on ilmainen Dart Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Dart Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Dart Academy-kurssilla on yhteensä 4 oppituntia.

Helppo tapa aloittaa

Isolatejen luominen käsin on hankalaa. Isolate.run on yksinkertaisin tapa siirtää yksi raskas tehtävä pois main-isolatesta. 🚀

Mitä se tekee

Isolate.run käynnistää uuden isolaten, suorittaa funktion siellä, palauttaa tuloksen ja sulkee isolaten puolestasi.

Se palauttaa Futuren

Koska työ suoritetaan muualla, Isolate.run palauttaa Futuren. Voit odottaa sitä samalla tavoin kuin mitä tahansa muuta async-kutsua.

Future<int> sumIt() => Isolate.run(() {
  var total = 0;
  for (var i = 0; i < 1000000; i++) total += i;
  return total;
});

Odota tulosta

Kutsu metodia ja await sen tulosta. Main-isolate pysyy vapaana ja käyttöliittymäsi sujuvana laskennan aikana.

final result = await Isolate.run(heavyTask);
print(result);

Välitä top-level-funktio

Suoritettavan tehtävän tulisi olla top-level- tai static-funktio tai yksinkertainen closure. Näin sen lähettäminen uuteen isolateen pysyy turvallisena.

Käytä sulkeumia harkiten

Kaikki closure-funktion captured-arvot kopioidaan uuteen isolateen. Pidä talteen otettavat tiedot pieninä ja vältä lähetyskelvottomia asioita, kuten socket-yhteyksiä.

Välitä syötteet

Tarvitsetko syötteitä? Ota ne talteen closure-funktiossa tai välitä ne parametrien kautta. Dart kopioi ne toiselle puolelle, joten isolate käsittelee omaa versiotaan.

final big = await Isolate.run(() => parseJson(rawText));

Palauta tulokset

Kaikesta, minkä funktiosi palauttaa, tulee Future-arvo. Se kopioidaan automaattisesti takaisin main-isolateen.

Virheet välittyvät kutsujalle

Jos suoritus heittää virheen, Future hylätään. Käsittele virhe käärimällä await try/catch-rakenteeseen suoraan kutsukohdassa.

try {
  final r = await Isolate.run(risky);
} catch (e) {
  print('failed: $e');
}

Käynnistyksen hinta

Jokainen Isolate.run-kutsu käynnistää ja sulkee isolaten. Tästä aiheutuu yleiskustannuksia, joten se kannattaa raskaisiin tehtäviin, ei pieniin operaatioihin.

Milloin se sopii

Valitkaa Isolate.run, kun käsiteltävänä on yksi suuri ja itsenäinen tehtävä. Jatkuvaan kaksisuuntaiseen viestintään täysimittaiset isolaatit sopivat paremmin.

Pikatarkistus

Mitä Isolate.run palauttaa?

Kertaus

Isolate.run siirtää yhden raskaan funktion suoritettavaksi, odottaa sen Futurea, kopioi tuloksen takaisin ja siivoaa resurssit. Se on yksinkertaisin tapa hyödyntää rinnakkaisuutta. ✅

Aloita maksutta

Opi Dart tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Isolate.run nopeaan työn siirtämiseen” ilmainen?

Kyllä – oppitunnin ”Isolate.run nopeaan työn siirtämiseen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Dart Academy-kurssin, päivitä CoddyKit PROhon. Dart Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Isolate.run nopeaan työn siirtämiseen”?

Suorita funktio pääisolaatin ulkopuolella Harjoittelet Dart Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Dart Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Dart Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Isolate.run nopeaan työn siirtämiseen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Dart Academy-oppitunnilla?

Kyllä. Jokainen Dart Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Miksi isolaatit eivät säikeet
  2. Isolate.run nopeaan työn siirtämiseen
  3. Isolaattien luonti ja viestinvälitys
  4. Laskentaintensiiviset tehtävät ilman nykimistä
← Takaisin: Dart Academy