Bir Nechta Fayllarni Threadlar Bilan Yozish
Python threads.
Bir Nechta Fayllarni Threadlar Bilan Yozish
Threadlardan foydalanishning bir nechta keng tarqalgan holatlari mavjud. Ulardan biri — bir vaqtda bir nechta fayllarni yozish. Haqiqiy dunyo muammosini qanday hal qilishni ko'rish juda qiziqarli, shuning uchun mana shu yerda buni amalga oshirishingizni ko'rib chiqamiz.
Boshlash uchun writing_thread.py
nomli fayl yarating. Keyin faylingizga quyidagi kodni qo'shing:
Endi kodni tahlil qilaylik:
1-3 qatorlar:
random
, time
va Thread
ni import qilasiz. random
orqali tasodifiy sonlar generatsiya qilinadi, time
esa vaqt bilan bog'liq funksiyalarni bajaradi, Thread
esa threadlarni yaratish uchun kerak bo'ladi.
6-18 qatorlar:
Bu yerda WritingThread klassini yaratdingiz. Bu klass fayl nomi, yoziladigan qatorlar soni va ish vaqti (default qiymati 1 sekund) kabi parametrlarni qabul qiladi. Bu parametrlar yordamida siz ma'lum sonli qatorlardan iborat matn faylini yaratishingiz mumkin. work_time — har bir qatorni yozishdan oldin kutish vaqti.
run() metodini ko'rib chiqamiz:
Bu kodda, siz faylga nechta qator yozishingizni chiqarasiz. Keyin faylni yaratib, matnni qo'shasiz. Faylga yozish jarayonida sleep()
yordamida vaqt qo'shib, yozish jarayonini simulyatsiya qilasiz.
Oxirgi kod blokini ko'rib chiqamiz:
Bu kodda, siz 5 ta fayl nomidan iborat ro'yxat yaratish uchun list comprehensiondan foydalanasiz. Keyin fayllarni birma-bir aylanib chiqasiz va har bir fayl uchun tasodifiy ish vaqi va qatorlar sonini tanlaysiz. So'ngra, WritingThread yaratib, start() metodini chaqirasiz.
Kod ishga tushirilganda quyidagi kabi natijani ko'rishingiz mumkin:
E'tibor bering, ba'zi xato chiqishlar bo'lishi mumkin, masalan, oxirgi qatorda yozilganlarni bir nechta thread bir vaqtda standart chiqish (stdout) ga yozishgan bo'lishi mumkin.
Ushbu kodni urllib.request bilan birgalikda ishlatib, Internetdan fayllarni yuklab olish uchun ilova yaratishingiz mumkin. O'zingiz sinab ko'ring!
Last updated on