থ্রেড#
ভূমিকা#
থ্রেড একটি রোবটকে একই প্রোগ্রামের মধ্যে একযোগে একাধিক কাজ চালাতে সাহায্য করে। এগুলি মাল্টিটাস্কিং সক্ষম করে, যার ফলে রোবট একই সময়ে স্বাধীন কাজগুলি সম্পাদন করতে পারে।
দ্রষ্টব্য: থ্রেডের সাথে ব্যবহার করার জন্য আপনাকে অবশ্যই প্রথমে একটি ফাংশন সংজ্ঞায়িত করতে হবে।
কনস্ট্রাক্টর – নতুন থ্রেড তৈরি ও চালু করে।
Thread– একটি নতুন থ্রেড শুরু করে যা মূল প্রোগ্রামের সমান্তরালে নির্দিষ্ট ফাংশনটি চালায়।
করণীয় – চলমান থ্রেডগুলো নিয়ন্ত্রণ করুন।
stop– ম্যানুয়ালি একটি থ্রেড বন্ধ করে, ব্যাকগ্রাউন্ডের কার্যকলাপ থামানোর জন্য উপযোগী।
নির্মাতা#
Thread#
Thread একটি থ্রেড তৈরি করে এবং শুরু করে। যখন আপনি একটি থ্রেড তৈরি করেন, তখন আপনি এটির একটি নাম দিতে পারেন, যাতে প্রয়োজন ফুরিয়ে গেলে এটি বন্ধ করা যায়।
ব্যবহারবিধি:
my_thread = Thread(my_function)
প্যারামিটার |
বর্ণনা |
|---|---|
|
ঐচ্ছিক। নতুন থ্রেডটির জন্য একটি নাম। |
|
পূর্বে সংজ্ঞায়িত ফাংশন এর নাম। |
দ্রষ্টব্য: একটি ফাংশনকে কল করার আগে অবশ্যই সংজ্ঞায়িত করতে হবে।
# Drive forward while blinking lights
def blink_lights():
while True:
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
blink_lights_thread = Thread(blink_lights)
robot.move_at(0)
# Run multiple threads simultaneously
# Turn right, blink lights and display heading at once
def blink_lights():
while True:
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
def display_heading():
while True:
robot.screen.clear_row()
robot.screen.set_cursor(1, 1)
robot.screen.print(f"Heading: {robot.inertial.get_yaw()}")
wait(50, MSEC)
blink_lights_thread = Thread(blink_lights)
display_heading_thread = Thread(display_heading)
robot.turn(RIGHT)
পদক্ষেপ#
stop#
stop ম্যানুয়ালি একটি থ্রেড বন্ধ করে, যা তখন কাজে লাগে যখন কোনো কাজের আর প্রয়োজন হয় না অথবা যখন কোনো প্রোগ্রামের থ্রেড রিসেট করার প্রয়োজন হয়। একবার একটি থ্রেড বন্ধ হয়ে গেলে, এটি পুনরায় চালু করা যায় না। এটিকে আবার চালানোর জন্য, আপনাকে Thread ব্যবহার করে একটি নতুন থ্রেড তৈরি করতে হবে।
ব্যবহারবিধি:
my_thread.stop()
প্যারামিটার |
বর্ণনা |
|---|---|
|
পূর্বে শুরু করা একটি থ্রেড অবজেক্ট। |
"""
Run multiple threads simultaneously
Turn right, blink lights and display heading at once
Stop blinking lights after 2 seconds
"""
def blink_lights():
while True:
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
def display_heading():
while True:
robot.screen.clear_row()
robot.screen.set_cursor(1, 1)
robot.screen.print(f"Heading: {robot.inertial.get_yaw()}")
wait(50, MSEC)
blink_lights_thread = Thread(blink_lights)
display_heading_thread = Thread(display_heading)
robot.turn(RIGHT)
wait(2, SECONDS)
blink_lights_thread.stop()