Multithreaded Random Number Generation with JSON Logging

  • Share this:

Code introduction


This function creates multiple threads, where each thread generates a random number between 1 and 100, writes the number and thread information to the output.txt file, and prints the relevant information to the console. It utilizes technologies such as multithreading, random number generation, file operations, and JSON data formatting.


Technology Stack : The package and technology stack used in the code include multithreading, random number generation, file operations, and JSON data formatting.

Code Type : Function

Code Difficulty : Advanced


                
                    
def zebra(arg1, arg2):
    import json
    from time import sleep
    import random
    import math
    import os
    import sys
    import threading

    def process_data(data):
        with open('output.txt', 'a') as f:
            f.write(json.dumps(data) + '\n')
        print("Data processed and saved to output.txt")

    def thread_function():
        for i in range(5):
            sleep(1)
            random_number = random.randint(1, 100)
            data = {
                "number": random_number,
                "message": f"Thread {threading.current_thread().name} generated number: {random_number}"
            }
            process_data(data)
            print(data["message"])

    threads = []
    for i in range(3):
        thread = threading.Thread(target=thread_function, name=f"Thread-{i+1}")
        threads.append(thread)
        thread.start()

    for thread in threads:
        thread.join()

    print("All threads have completed their execution.")