In this example, we have created a thread that runs a function called `print_numbers`. The function takes an argument `num` that decides how many numbers to print. We pass the function and its argument to the `target` and `args` parameters, respectively, in the `Thread` constructor. Finally, we start the thread by calling the `start` method. Example 2:python import threading class Counter: def __init__(self): self.value = 0 def increment(self, num): for i in range(num): self.value += 1 print('Counter Value:', self.value) counter = Counter() thread1 = threading.Thread(target=counter.increment, args=(5,)) thread2 = threading.Thread(target=counter.increment, args=(10,)) thread1.start() thread2.start() ``` In this example, we have created a class called `Counter` that has a method called `increment` that increments the value of a counter variable by a specified number. We create two threads that run the `increment` method with different arguments. We pass the method and its arguments to the `target` and `args` parameters, respectively, in the `Thread` constructor. Finally, we start the threads by calling the `start` method. The package library used in these examples is the Python threading library.