Co-operative multitasking nedir? verebilirseniz Pythondan örnek

Arkadaşlar forumda gezinirken bu terimi gördüm ve araştırdım ama anlayamadım wikipedia da yazılanları
bana bu konuda bir yazı linki atar mısınız? veya bu terimi anladığınız şekilde bana da anlatır mısınız?

Muhtemelen @aib 'in bir postunu gordun, benim gibi. Ben de gorunce arastirdim. Ve buldum:

https://duckduckgo.com/?q=cooperative+multitasking&t=h_&ia=web&atb=v238-1


@reo siz orda yazılanlardan ne çıkardınız?

Bir thread’in (task’in) kontrolun kendisinden baskasina gececegi zamanlari kendisi secmesi.

for e in elements: # Uzun is
    e.hesapla()
    kontrolu_birak()

Genellikle isletim sistemine veya kullanilan bir async kutuphanesine yapilan cagrilar bu kontrol birakmayi otomatik yapar.

1 Beğeni

golang ile ilgili bu konuda Parametric polymorphism terimini de kullanmıştınız bu ikisi arasındaki bağlantı ne?
hocam

Baglanti yok; biri iyi yaptigi, digeri (henuz? iyi?) yapamadigi bir sey.

Turlerin parametre oldugu (“generic”) fonksiyonlar mesela: T add<T>(T a, T b) { return a+b; }

Iki tanimi da kafadan yazdim, akademik/resmi tanimlari farkli olabilir.

1 Beğeni

std::vector gibi yani
farklı tiplerle yani farklı şekillerde kullanılabilirler
:smiley:

Aynen

Ad hoc polymorphism de “elle” yapmak: int add(int a, int b); string add(string a, string b); veya def add(a, b): if a instanceof str: ...

1 Beğeni

function overloading ile yani
:thinking:


template mi deniyor
<type> şeklinde çalışabilenlere hocam?

Ikinci ornekte (python’da) overloading yok

C++'ta template.
Java’da/C#'ta generics.

1 Beğeni

Az once yanlis anlam cikardigimi fark ettim.

iyiki bu konuyu açmışım o zaman :slight_smile:

1 Beğeni

Polimorfizm, bir class’in birden fazla sinifi miras almasina yaramiyor muydu? Ben java’da oyle hatirliyorum. Yazilanlardan bisey anlamadim ama, arastirip doneyim bir.

burayı tam anlayamadım hocam
kontrolu bırakmak ne demek tam anlayamadım sanırım
:confused:

bir methodun veya bir fonksiyonun birden fazla kullanımı olmasıydı sanırım
:thinking:
yanlışım varsa düzeltin hocam @aib :sweat_smile:

hocam bu isinstance() olmayacak mı?

Pseudo kod yazılmış.

1 Beğeni

polymorphism bir type’ın başka bir type olarak davranabilmesiimiş
yani başka bir type olarak kullanılabilmesi imiş

:thinking:

Yani bir kaynak, mesela dosya, bağlantı, yazıcı, kritik değişkenler vs, üzerinde çalışan thread’ler varken başka threadler bu kaynağı bekliyor olabilir. Thread’lerin uzun süre beklememesi için (açlık çekmemesi için) veya başka bir zorunlu sebepten dolayı bazen kaynaklar bırakılır, kontroller diğerlerine devredilir. Normalde thread’lere dışarıdan müdahale etmek doğru değildir, o yüzden kontrolü kendisi devredebileceği mekanizmalar kullanılır.

2 Beğeni

Tam olarak böyle değil.

Mesela

Bir magic function olan __add__, polimorfiktir.

a = 1
print(a.__add__(2))

b = "hello"
print(b.__add__("hello"))

c = [1]
print(c.__add__(["hello"]))

Yani farklı tipteki nesnelere göre farklı işlemlerin yapılmasını sağlayan nesneler polimorfik özelliktedir.

2 Beğeni