থ্রেড#

ভূমিকা#

থ্রেড একটি রোবটকে একই প্রোগ্রামের মধ্যে একযোগে একাধিক কাজ চালাতে সাহায্য করে। এগুলি মাল্টিটাস্কিং সক্ষম করে, যার ফলে রোবট একই সময়ে স্বাধীন কাজগুলি সম্পাদন করতে পারে।

দ্রষ্টব্য: থ্রেডের সাথে ব্যবহার করার জন্য আপনাকে অবশ্যই প্রথমে একটি ফাংশন সংজ্ঞায়িত করতে হবে।

কনস্ট্রাক্টর – নতুন থ্রেড তৈরি ও চালু করে।

  • Thread – একটি নতুন থ্রেড শুরু করে যা মূল প্রোগ্রামের সমান্তরালে নির্দিষ্ট ফাংশনটি চালায়।

করণীয় – চলমান থ্রেডগুলো নিয়ন্ত্রণ করুন।

  • stop – ম্যানুয়ালি একটি থ্রেড বন্ধ করে, ব্যাকগ্রাউন্ডের কার্যকলাপ থামানোর জন্য উপযোগী।

নির্মাতা#

Thread#

Thread একটি থ্রেড তৈরি করে এবং শুরু করে। যখন আপনি একটি থ্রেড তৈরি করেন, তখন আপনি এটির একটি নাম দিতে পারেন, যাতে প্রয়োজন ফুরিয়ে গেলে এটি বন্ধ করা যায়।

ব্যবহারবিধি:

my_thread = Thread(my_function)

প্যারামিটার

বর্ণনা

my_thread

ঐচ্ছিক। নতুন থ্রেডটির জন্য একটি নাম।

my_function

পূর্বে সংজ্ঞায়িত ফাংশন এর নাম।

দ্রষ্টব্য: একটি ফাংশনকে কল করার আগে অবশ্যই সংজ্ঞায়িত করতে হবে।

def move_square():
    # Move in a square path
    while True:
        arm.move_inc(100, 0, 0)
        arm.move_inc(0, 100, 0)
        arm.move_inc(-100, 0, 0)
        arm.move_inc(0, 100, 0)

move_square_thread = Thread(move_square)
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)

# Run multiple threads simultaneously
def move_square():
    # Move in a square path
    while True:
        arm.move_inc(100, 0, 0)
        arm.move_inc(0, 100, 0)
        arm.move_inc(-100, 0, 0)
        arm.move_inc(0, 100, 0)

def lights():
    while True:
        # Turn on all LEDs
        signal_tower.set_colors(SignalTower.ON, SignalTower.ON, SignalTower.ON, SignalTower.ON, SignalTower.ON)
        wait(0.25, SECONDS)
        # Turn on just the red LED
        signal_tower.set_colors(SignalTower.ON, SignalTower.OFF, SignalTower.OFF, SignalTower.OFF, SignalTower.OFF)
        wait(0.25, SECONDS)

move_square_thread = Thread(move_square)
lights_thread = Thread(lights)

পদক্ষেপ#

stop#

stop ম্যানুয়ালি একটি থ্রেড বন্ধ করে, যা তখন কাজে লাগে যখন কোনো কাজের আর প্রয়োজন হয় না অথবা যখন কোনো প্রোগ্রামের থ্রেড রিসেট করার প্রয়োজন হয়। একবার একটি থ্রেড বন্ধ হয়ে গেলে, এটি পুনরায় চালু করা যায় না। এটিকে আবার চালানোর জন্য, আপনাকে অবশ্যই Thread ব্যবহার করে একটি নতুন থ্রেড তৈরি করতে হবে।

ব্যবহারবিধি:

my_thread.stop()

প্যারামিটার

বর্ণনা

my_thread

পূর্বে শুরু করা একটি থ্রেড অবজেক্ট। Thread ব্যবহার করে থ্রেডটি তৈরি করার সময় এই নামটি নির্ধারণ করা হয়েছিল।

"""
Run multiple threads simultaneously
Move the end effector, flash lights and display the x position at once
Stop blinking after 2 seconds
"""
def lights():
    while True:
        # Turn on all LEDs
        signal_tower.set_colors(SignalTower.ON, SignalTower.ON, SignalTower.ON, SignalTower.ON, SignalTower.ON)
        wait(0.25, SECONDS)
        # Turn on just the red LED
        signal_tower.set_colors(SignalTower.ON, SignalTower.OFF, SignalTower.OFF, SignalTower.OFF, SignalTower.OFF)
        wait(0.25, SECONDS)

def display_x():
    while True:
        brain.clear_row()
        brain.set_cursor(1, 1)
        brain.print("X Position: {}".format(arm.get_x()))
        wait(50, MSEC)

lights_thread = Thread(lights)     
display_x_thread = Thread(display_x)
arm.move_to(200, 140, 210)

wait(2, SECONDS)
lights_thread.stop()