Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir konuşmacının C# ve .NET platformunda paralel programlama konusunu anlattığı eğitim içeriğidir.
- Video, paralel programlamanın temel kavramlarını açıklayarak başlıyor ve ardından .NET platformundaki TPL (Task Parallel Library) kütüphanesinin kullanımını detaylı şekilde ele alıyor. İçerik, Task oluşturma, başlatma, duraklatma, sonlandırma, zincir oluşturma ve alt görevler başlatma gibi temel özelliklerin yanı sıra, Task'lardan geri dönüş alma işlemleri ve generic/parametreli metotlar üzerinden örneklerle açıklanmaktadır.
- Eğitim boyunca kod örnekleri ve çalışma sonuçları gösterilmekte, paralel programlamanın birden fazla işlemcinin bulunduğu donanımlarda yazılımın gücünü daha etkili kullanmak için iş süreçlerini işlemcilerin farklı işlemcilere dağıtarak aynı anda yapılabilmesini sağladığı vurgulanmaktadır.
- 00:01Paralel Programlama Nedir?
- Paralel programlama, C ve .NET platformunda TPL (Task Parallel Library) adı verilen kütüphanesi ile gerçekleştirilebilen bir programlama tekniğidir.
- Multithread programlama, tek işlemci üzerinde çalışan ve aynı anda birden fazla iş yapabilmesini sağlayan bir yöntemken, paralel programlama birden fazla işlemci kullanarak işleri parçalara ayırarak daha hızlı ve performanslı bir şekilde yapmayı sağlar.
- Paralel programlama, birden fazla işlemcinin bulunduğu donanımlarda yazılımın gücünü daha etkili kullanabilmek için iş süreçlerini farklı işlemcilere dağıtarak aynı anda yapılabilmesini sağlar.
- 02:35TPL ile Yapılabilen İşler
- TPL, görev tabanlı çalışma üzerine kurulu bir yapıya sahiptir ve Task nesnesi ile yeni görevler oluşturulabilir.
- Görevler başlatma, duraklatma ve sonlandırma işlemlerine tabi tutulabilir, ayrıca bir görevin bittiği yerden başka bir görev başlatılabilir.
- Başarıyla yerine getirilen görevlerin sonucunda değerler döndürülebilir ve bir görev kendi içinde alt görevler başlatabilir.
- 04:59İlk TPL Örneği
- Task nesnesi oluşturulup TaskFactory üzerinden StartNew metodu ile yeni bir görev başlatılabilir.
- Görev başladı bilgisi yazdırılıp, bir for döngüsü ile işlem gerçekleştirildikten sonra Task.Status ile görev durumu kontrol edilebilir.
- Task.Wait() metodu ile görevin bitmesini bekleyebilir veya bekletmeden devam edilebilir, ancak bekletme işlemi yaparak iş akışının bozulmaması sağlanabilir.
- 12:47İkinci TPL Örneği
- Yeni bir metot (myTask) oluşturulup, bu metot içinde Thread.CurrentThread.Id ile şu anki threadin ID'si alınabilir.
- Task nesnesi, myTask metodu action olarak verilerek oluşturulabilir ve Thread.Sleep ile bekleme işlemlerine sahip olabilir.
- Main thread üzerinden çalışan thread elde edilip, Task.Start() ile görev başlatılabilir ve for döngüsü ile işlem gerçekleştirilebilir.
- 17:24Thread İşlemleri Örneği
- Öncelikle düzenli bir şekilde mytest işlemi gerçekleşti ve maintread bitti mesajı verildi.
- Test için void geri dönüş tipine sahip parametresiz bir metot oluşturuldu ve görev olarak çalıştırıldı.
- Tsk nesnesine main thread'in bilgisi alındı (id'si 8) ve görevin id'si (1) elde edildi.
- 18:55Çoklu Thread İşlemleri
- Main thread içerisinde noktalar yazarken, mytest thread'i kendi içerisindeki thread ile ekrana "mytest, counter ve count değerini" yazdırdı.
- Console write ile noktalar yazarken, mytest thread'i hemen yanına yetişebildiği kadar konsol writeline ile "mytest" yazdı ve alt satıra indi.
- İki thread birlikte çalışarak noktalar ve mytest yazılarını ekrana yazdırdı.
- 20:14TPL'de Continue İşlemi
- TPL'de continue işlemi, bir görev bittiğinde kendisinden sonraki bir göreve devam et komutu vererek görevler zinciri oluşturmayı sağlayan bir yapıdır.
- Tsk nesnesinin "continue with" metodu kullanılarak devam edecek olan continuation action nesnesine action verildi.
- İki görev zinciri oluşturuldu: önce mytest başladı, sonra devam etme işlemi başladı ve count değeri 1'den 4'e kadar arttı.
- 25:12Return Value İşlemi
- Bir threadten geri dönüş alma işlemi için iki örnek metot hazırlanmıştır: void mytest ve integer değer dönen metot.
- Geri dönüş tipi belirtilerek thread oluşturuldu ve mytest metodu çalıştırıldı.
- Parametre alan metot için int tsk kurulumu yapıldı ve beş değerini alan thread oluşturuldu.