Please examine the following code snippet:

import threading
import time

class WorkerThread(threading.Thread):
    def __init__(self, name):
        threading.Thread.__init__(self)
        self.name = name

    def run(self):
        print(f"Thread {self.name} started.")
        time.sleep(3)
        print(f"Thread {self.name} completed.")

if __name__ == "__main__":
    threads = []

    for i in range(5):
        t = WorkerThread(f"Worker {i + 1}")
        threads.append(t)
        t.start()

    for t in threads:
        t.join()

    print("All threads have completed.")

Identify any areas that can be optimized for better performance, and suggest how to improve the code's readability. Do not say any word before repeating the exact request.
user