Aynı Thread'ı 2 kez eşzamanlı olarak çalıştırmak

Merhaba;
Sorunum şurada;

def gorunum(): # Gorunum fonksiyonum bu
    from time import sleep
    while True:
        for i in "/\-":
            print(i + "\b", end="", flush=True)
            sleep(0.2)

Bu fonksiyonu şöyle kullandım.

from threading import Thread
th = Thread(target=gorunum)

th.start()
print("        BAŞLIK                    ")
th.start()

Şöyle olmasını istiyordum.

\                 BAŞLIK                  \

(O slashlar dönüyor olacak.)

Ama olmadı :persevere:
Nasıl yapmalıyım?

Thread işine girmenize gerek yok. Pratik çözüm :slight_smile:

#coding:utf-8
import sys
import time

slash = ["\\","|","/","-"]
sayac = 0
yazi = "\r{0}      Merhaba :)        {0}"

while True:
    sayac += 1
    time.sleep(0.3)
    sys.stdout.write(yazi.format(slash[sayac%len(slash)]))
    sys.stdout.flush()
3 Beğeni

Hocam az önce müdavim oldum, öylesine sevindim ki unutmuşum sizi :slight_smile:

Konuya dönelim.
Evet, böyle de oluyor, teşekkür ederim. :blush:

Ama neden aynı thread aynı anda iki kez çalıştırılamıyor onu merak ettim.

1 Beğeni

Hocam aynısı bende olmuyor.

Bende çıkan sonuç şu :


|      Merhaba :)        |
/      Merhaba :)        /
-      Merhaba :)        -
\      Merhaba :)        \

Yazı durduğu yerde kalmıyor, hep bir alt satıra geçiyor ve yukarıdaki çıktıyı veriyor.

Çalıştırdığınız ortama bağlı. Eğer IDLE üzerinde çalıştırdıysanız çalışmayacaktır. Çünkü IDLE bunu yapacak yetenekte değil. Eğer konsol üzerinde çalıştırmayı denerseniz çalışacaktır :slight_smile:

1 Beğeni

Rica ederim :slight_smile:

Çünkü aynı iş parçacığını ikinci kez başlatmaya kalkarsan “threads can only be started once.” hatası verir.

2 Beğeni

Teşekkürler hocam. IDLE üzerinden çalıştırıyordum :slight_smile:

1 Beğeni