Langat#
Johdanto#
Säikeet mahdollistavat robotin suorittaa useita tehtäviä samanaikaisesti saman ohjelman sisällä. Ne mahdollistavat moniajon, jolloin robotti voi suorittaa itsenäisiä toimintoja samanaikaisesti.
Huomautus: Sinun on ensin määriteltävä funktio käyttääksesi sitä säikeen kanssa.
Konstruktori — Luo ja aloita uusia säikeitä.
Thread— Käynnistää uuden säikeen, joka suorittaa määritetyn funktion rinnakkain pääohjelman kanssa.
Toiminto — Hallitse käynnissä olevia säikeitä.
stop— Pysäyttää säikeen manuaalisesti, hyödyllinen taustalla tapahtuvan toiminnan pysäyttämiseksi.
Rakentaja#
Thread#
Thread luo ja aloittaa säikeen. Kun luot säikeen, voit nimetä sen pysäyttääksesi sen, kun sitä ei enää tarvita.
Käyttö:
my_thread = Thread(my_function)
Parametrit |
Kuvaus |
|---|---|
|
Valinnainen. Uuden ketjun nimi. |
|
Aiemmin määritellyn funktion nimi. |
Note: A function must always be defined before it is called.
# Drive forward while blinking screen
def blink_screen():
while True:
brain.screen.clear_screen(Color.RED)
wait(0.5, SECONDS)
brain.screen.clear_screen()
wait(0.5, SECONDS)
blink_screen_thread = Thread(blink_screen)
drivetrain.drive(FORWARD)
# Run multiple threads simultaneously
# Turn right, blink screen at once
def blink_screen():
while True:
brain.screen.clear_screen(Color.RED)
wait(0.5, SECONDS)
brain.screen.clear_screen()
wait(0.5, SECONDS)
def turning():
drivetrain.turn(RIGHT)
blink_screen_thread = Thread(blink_screen)
turning_thread = Thread(turning)
Toiminta#
stop#
stop pysäyttää säikeen manuaalisesti, mikä on hyödyllistä, kun tehtävää ei enää tarvita tai kun ohjelman on nollattava säikeet. Kun säie on pysäytetty, sitä ei voi käynnistää uudelleen. Suorittaaksesi sen uudelleen, sinun on luotava uusi säie käyttämällä Thread -funktiota.
Käyttö:
my_thread.stop()
Parametrit |
Kuvaus |
|---|---|
|
Aiemmin aloitettu säikeen objekti. Tämä on nimi, joka annettiin, kun säikeelle luotiin arvo |
"""
Run multiple threads simultaneously
Turn right, play a sound and display heading at once
Stop playing sounds after 2 seconds
"""
def sound():
while True:
brain.play_sound(SoundType.ALARM)
wait(0.5, SECONDS)
def display_heading():
while True:
brain.screen.clear_row()
brain.screen.set_cursor(1, 1)
brain.screen.print("Heading: {}".format(brain_inertial.orientation(YAW)))
wait(50, MSEC)
sound_thread = Thread(sound)
display_heading_thread = Thread(display_heading)
drivetrain.turn(RIGHT)
wait(2, SECONDS)
sound_thread.stop()