v.s. v.s. böyle devam ediyor. Benim yapmak istediğim olay ise d1 değişkenindeki ana fonksiyon bittikden sonra d2 değişkeni çalışmaya başlayacak Kodları örnek olsun diye hazırladım. Nası yapabilirim yardımcı olursanız çok menmun olurum.
import sys,time
import threading
def fonksiyon1(pp):
print("fonksiyon "+pp+" calisti")
for i in range(1,100):
time.sleep(0.5)
print(i)
def anafonksiyon(cc):
th1 = threading.Thread(target = fonksiyon1,args=("1"))
th1.start()
time.sleep(51) # 1-100 arası zamanda 0.5 saniye hız olduğu için zaman aralığını (100/2)+1 şeklinde seçtim.
th2 = threading.Thread(target = fonksiyon1,args=("2"))
th2.start()
time.sleep(51) # Buraya da ekledim.
d1 = anafonksiyon(20)
d2 = anafonksiyon(30)
Yalnızca time.sleep(51) ile işi kurtardım gibi görünüyor. Ancak saniye bazlı bir kurtarmada dikkat edeceğiniz şey hız olabilir belki. Elimden şimdilik bu kadar geldi. Umarım farklı bir çözüm aramıyorsunuz.
Rica ederim. Ben de çok hakim değilim bu tür konulara ama en azından kendimi geliştirmek için yazıp yazıp duruyorum başlıklara. Hem belki yardımcı olurum diye… Tam da düşündüğüm şeyi söylediniz. Benim çözümüm biraz daha yan sanayi ürünü gibi geldi. Hatta çin malı. Nedeni şu: kodlar birbirini bitişine göre takip etmiyor. Belirlediğimiz bekleme süresine göre takip ediyor. Bu hem hız açısından hem işlevsellik açısından orjinalliği yansıtmıyor. Benim fikrim bu. Belki de sys.stdout çıktısını kontrol etmek lazım. O da çözüm dışında mı acaba?
sn @ismailarilik bey’in de dediği gibi, Thread’ler aynı anda çalışmak üzere tasarlanmıştır. Ancak konu dışı mı bilmiyorum ama bir konudan bahsetmek istiyorum.
Bazı dillerde Thread önceliği ayarlamak mümkün. Örneğin Java’da bir Thread’i düşük ve yüksek öncelikli olarak çalıştırabilirsiniz. Python’da bu mümkün değil. Çünkü Python’da buna açık bir şekilde izin verilmiyor. Thread önceliği konusu “Thread priority” olarak geçiyor.