Python Thread süre aralığı

Başlatan fghty, 23 Temmuz 2012 - 21:05:34

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

fghty

Thread modülüyle belli süre alağıyla ilerlemesini istiyorum ama yapamadım. Birinci fonksiyon 1 saniye ile ilerliyorsa ikinci fonksiyon birinci fonksiyondan 0.5 saniye daha sonra ilerleyecek. Yani 1.5 saniye. Bu şekilde 1, 1.5 ; 2, 2.5 şeklinde sürekli ikisi arasında 0.5 saniylik fark olacak şekilde ilerlemeli. Bunu nasıl yapabilirim?

#!/usr/bin/python

import thread
import time

def sure1():
    for i in range(20):
        time.sleep(1)
        print i

def sure2():
    for i in range(20,40):
        time.sleep(1.5)
        print i


thread.start_new_thread( sure1, ( ) )
thread.start_new_thread( sure2, ( ) )


Bu kod tam istediğim gibi işlemiyor.

hitokiri

Alıntı YapThread modülüyle belli süre alağıyla ilerlemesini istiyorum ama yapamadım. Birinci fonksiyon 1 saniye ile ilerliyorsa ikinci fonksiyon birinci fonksiyondan 0.5 saniye daha sonra ilerleyecek
O zaman neden iki ayrı fonksiyona gerek duyuyorsun ki?
Tek işlemde birinci işlem bittikten sonra time ile bekletip ikinci işleme geçersin.

     for i in range(20):
        time.sleep(1)
        print i

     time.sleep(0.5)
     .....

ya da tamamen başka bir şeyden bahsediyorsan global ile bir değişken tanımlayıp o değişkeden gelen veriden faydalanabilirsin gibi.

fghty

http://forum.ubuntu-tr.net/index.php?topic=34591.0 bu konudaki dosya kontrolüne çözüm için thread kullanmayı deneyecem. Diğer türlü sadece while True: ile bilgisayar çok kasıyor.

sem

Bir dosyada değişiklik olup olmadığı kontrolünü Linux sistemlerde select fonksiyonu ile yaabiliyorsunuz. C bölümünde bir aritmetik oyun vardı bununla alakalı olarak. Aritmetik oyun diye aratınca karşınıza çıkacaktır. Python fonksiyonları ise;

http://docs.python.org/library/select.html
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

fghty

@sem0900: Öncelikle yardım ettiğin için çok sağol. Python da select modülünü daha çok socket modülüyle kullanmışlar ve kullanımını tam anlayamadım. Bu modülün kullanımıyla ilgili küçük bi örenek verebilir misiniz? Dediğiniz oyunu buldum onu da akşam bi inceleyecem. :)

sem

Rica ederim.

@fghty, Python'da ben de sadece soket ile kullanmıştım yanılmıyorsam. Fakat C ile ilgili oyunu yaparken de aslında sadece soket örneklerini incelmiştim. Daha sonra "Linux'ta her şeyin bir dosya olduğu"  ibaresinden yola çıkarak stdin, soket vs hepsini soket olarak ele aldığımızda kullanım olarak bir değişiklik olmayacaktır sanıyorum.

Bu ara zorlanıyorum biraz zaman konusunda ama zaman bulabilirsem hafta içerisinde örnek kod yazmaya çalışırım. Eğer siz daha önce yazarsanız paylaşırsanız sevinirim.

Kolay gelsin hepimize =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

fghty

#6
Tamam hocam eğer sizden önce bişeyler yapabilirsem buradan paylaşırım.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 26 Temmuz 2012 - 00:08:32

Hocam yanlış anlamadıysam select modülünü socket dışında kullanamıyoruz. Sadece Unix de socket dışında kullanılabiliyor galiba.