از قرار معلوم که دنبال جواب مساله هستید. اگه خودتون کدی که نوشتید رو بذارید ما هم میتونیم مشکلاتش رو رفع کنیم. در غیر این صورت اینجا تمرین حل نمی کنیم.
ولی مختصر راهنمایی که میتونم انجام بدم اینه که آرایه و طول اون رو به عنوان متغیر سراسری تعریف کنید. یک تابع بسازید که یک ورودی به عنوان شماره ی نخ دریافت می کنه .(مثلا اگه N تا نخ دارید این ورودی از ۱ تا N متغیر خواهد بود). داخل تابع ابتدا حد پایین و بالای قسمتی که قراره این نخ پردازش کنه (مقدار دهی کنه) رو حساب کنید. مثلا اگه ورودی X هست و طول آرایه M هست به این صورت می تونید حد پایین و بالا رو حساب کنید:
Lower Bound = (M/N)*(X-1)
Upper Bound = (M/N)*(X)
حالا داخل یک حلقه که از حد پایین شروع میشه و به حد بالا میرسه اون خونه ها رو با عدد تصادفی پر کنید. داخل تابع Main هم کافیه یه حلقه بذارید که به تعداد N تا نخ درست کنه هر کدوم این تابعی که بالا توضیح دادیم رو با پارامتر مناسب اجرا کنن و در ادامه یه حلقه بنویسید که به ازای تمامی نخ ها تابع Join اونها رو فراخوانی کنه. می تونید برای تعریف نخ ها هم از یک آرای استفاده کنید که طول آرایه N هست.