‫Tekrar hoş geldiniz.
‫Son videoda, iş parçacıklarını nasıl kullanacağınızı ve tehditleri nasıl kurup basitçe başlatabileceğinizi gördünüz.
‫Ve bu videoda, tamamlanma sürecine bir göz atacağız.
‫Yani bir iş parçacığını bir şey yapmak için kullanmak istiyoruz ve yalnızca belirli bir görev tamamlandığında devam etmek istiyoruz.
‫Şimdi buna bir göz atalım.
‫Görev tamamlama kaynağı adında yeni bir değişken oluşturacağım ve bu nedenle yeni görev tamamlama kaynağına ve bir
‫boolean'a ihtiyacım var.
‫Gördüğünüz gibi, bu görev tamamlama kaynağının ne olduğunu bilmediği için şikayet ediyor.
‫Ve bunu düzeltmek için sys threading görevlerini kullanmam gerekiyor.
‫Bir saniyeliğine bunu yapacağım.
‫Ve sonra burada.
‫Şimdi yapacağım şey bir test değişkeni oluşturmak olacak.
‫Bir görev tamamlama kaynağı olan bir görev çağıracağım ya da buna sadece görev tamamlama kaynağı
‫diyeceğiz.
‫Ve görevini sonuca göre belirledik.
‫Bu yüzden bu görevin sonucunu almak istiyoruz.
‫Diyelim ki çalışması ve bir şeyler yapması gereken belirli bir görev var ve ardından sonucu görmek istiyoruz.
‫Yani işe yaradı mı yaramadı mı, bunu test etmek için buradaki kırmızı çizgiden kurtulacağım.
‫Bu yüzden, bu ana yöntemde başka hiçbir şey yokmuş gibi kodu çalıştıracağım, sadece buradaki kodu.
‫Bu yüzden onu çalıştıracağım.
‫Ve gördüğünüz gibi, hiçbir şey olmuyor.
‫Dolayısıyla, konsolu açık tutmak istediğimizde genellikle her zaman kullandığımız bu konsol kırmızı
‫çizgisine sahip olmasak bile konsol canlı veya açık tutulur, bu da bitmemiş bir şey olduğu anlamına gelir.
‫Yani buradaki iş aslında hiçbir zaman bitmez çünkü ortada bir sonuç yoktur.
‫Yani bu tamamlama kaynağı aslında hiçbir zaman tamamlanmaz, bu yüzden hiçbir zaman true olarak ayarlanmaz.
‫Bu da manuel olarak yapabileceğimiz bir şey.
‫Diyelim ki bir görevimiz var ve sonucu burada olduğu gibi almak istiyoruz, ancak aslında bu görevi bir noktada
‫bitirmek istiyoruz.
‫Bunun için yapmamız gereken şey bir konu başlığı oluşturmaktır.
‫Bu yüzden yeni konuya eşit
‫bir var thread oluşturacağım ve bu konu hemen başlatılmayacak.
‫Bu yüzden burada yaptığımızdan biraz daha farklı bir yaklaşım kullanıyorum.
‫Burada sadece yeni konu dedik ve ardından konunun gövdesini yazdık.
‫Yani bu iş parçacığı her başlatıldığında yürütülmesi gereken koda ve biz hemen başlattık,
‫hemen başladık.
‫Ancak burada sadece iş parçacığı oluşturuyoruz ve daha sonra onunla bir şeyler yapabiliyoruz.
‫Bu yüzden burada sadece iplik uykusu diyeceğim.
‫Bu nedenle, diyelim ki 1000 milisaniye uyuyun ve ardından görev tamamlama kaynağını true olarak
‫ayarlamaya çalışın, böylece tri set sonucu.
‫Bunun yapacağı şey, temel görevi görev durumu tamamlandı durumuna geçirmeye çalışmaktır, bu da görevin doğru şekilde
‫yapıldığı anlamına gelir, bu nedenle görevin tamamlanma durumunu true olarak ayarlamaya çalışacaktır.
‫Yani bu görev tamamlama kaynağının true olarak ayarlanacağı anlamına gelir.
‫Ve ancak o zaman bu görevin sonucu olan bu VAR'ı alacağız.
‫O zaman biraz yaratalım.
‫Buraya gel.
‫Bu yüzden hata ayıklama adımını uygulayın ve iş parçacığı kimliklerini kontrol edelim.
‫Ve şimdi iş parçacığını başlatmak için aslında iş parçacığı başlatmayı çağırmamız gerekiyor.
‫Ve burada gördüğünüz gibi, tüm bunları yapacak bir iş parçacığı olan bu iş parçacığı nesnesi başlatılacak.
‫Bu yüzden konuyu bu şekilde başlatacağım ve hazır başlamışken, konunun neler sunabileceğine bir
‫göz atalım.
‫Dolayısıyla, bir iş parçacığı nesnesi oluşturduğunuzda, kullanabileceğiniz birden fazla özellik ve yöntem vardır.
‫Ya da burada birden fazla tane kullanabiliriz.
‫Böylece, iş parçacığını durdurabilmeniz için iş parçacığını iptal edebileceğiniz bir pano görebilirsiniz, ancak bu bir istisna çalıştıracak
‫veya bir istisnaya neden olacaktır.
‫Yani aslında bunu yapmak çok tehlikeli.
‫Böylece, güvenliğin nasıl inşa edildiğine bağlı olarak uygulamanızı bununla çökertebilirsiniz.
‫Ancak bir tahta, elbette bir konuyu durdurmak için kullanabileceğiniz bir şeydir, ancak uygulamada ne kadar ileri gittiğini
‫asla bilemezsiniz.
‫Bu nedenle, yapılmasını istediğiniz görevler yapılmayabilir ve bu da programınızın düzgün
‫çalışmamasına neden olur.
‫Ve tabii ki, this is alive, yani bu iş parçacığı şu anda canlı, is background, yani bir iş parçacığının
‫arka planda çalışması gerektiğini söyleyebileceğimiz ve bu özellik ile kontrol edebileceğimiz
‫gibi oldukça ilginç olan birçok başka yöntem veya özellik vardır.
‫Arka planda olup olmaması iplik için bir tehdittir.
‫Bunu daha sonra kontrol edeceğiz.
‫Peki iplik havuzu nedir?
‫Bunu daha sonra da göreceğiz.
‫Dolayısıyla, yönetilen iş parçacığı kimliği oldukça ilginç bir şeydir ve bize şu anda çalıştırdığımız iş parçacığının kimliği
‫hakkında bilgi verecektir.
‫Şimdi bunu kullanalım ve konsola yazdıralım.
‫Bu yüzden W'ye bakın ve ben de iplik numarasını bu şekilde kullanacağım.
‫Yani dolar işaretini kullanırsınız ve ardından iş parçacığı numarasına veya iş parçacığı kimliğine sahip olursunuz ve böylece onu çağırabilirsiniz.
‫Ve sonra küme parantezleri içinde yönetilen iş parçacığı kimliğini kullanırsınız, yani.
‫İş parçacığı yönetilen iş parçacığı kimliği.
‫Ve tabii ki ipi kapatmanız gerekir.
‫Pekâlâ, şimdi test edelim.
‫Kodu çalıştıralım.
‫Ve bizim ana konumuz var.
‫Ve şu ana kadar konsolda bir şey var.
‫Gördüğünüz gibi, iplik numarası üç.
‫Dolayısıyla, burada kendi oluşturduğumuz bu iş parçacığının sayısı aslında üçtür ve yönetilen
‫ana iş parçacığının kimliği birdir.
‫Gördüğünüz gibi, rakamlar aslında sizin beklediğiniz şekilde olmak zorunda değil.
‫Yani burada kendi ek başlığımızı oluşturmamış olsak bile, 1'den 3'e çıkıyor.
‫Dolayısıyla, burada görmediğimiz başka iş parçacıkları da çalışıyor olmalı.
‫Tamam.
‫Bu arada, bir iş parçacığının başlayıp başlamadığını görmek ve sonlandırmak istiyorsanız, aşağıdakileri yapabilirsiniz.
‫Evet.
‫Şimdi bunu buradan keselim ve bu satıra koyalım.
‫Ve aslında, başladı ve burada diyelim.
‫Thread kullanamayız çünkü thread burada oluşturduğumuz bu iş parçacığıdır.
‫Ancak bunu burada iş parçacığı gövdesi içinde kullanmak istiyorsak, thread dot current thread kullanmamız
‫gerekir.
‫Yani bunu şimdi yaparsak, şu anda içinde bulunduğumuz konuya sahip olacağız, ki bu tam olarak budur.
‫Ve burada başladığını söylüyoruz ve bittikten sonra da bittiğini söylüyoruz.
‫Ve şimdi çalıştıralım.
‫Kodu çalıştır.
‫Gördüğünüz gibi konsolda hiçbir şey görüntülenmiyor.
‫Bir sonraki adıma geçelim.
‫Ve sonra başladı ve bitti.
‫Yani oldukça hızlı oldu.
‫Ama gördüğünüz gibi var.
‫O yüzden biraz daha zaman verelim.
‫5 saniye olarak değiştirelim.
‫Ayrıca buradaki hata ayıklama noktasından da kurtulalım ve çalıştıralım.
‫Böylece üç numaralı iplik başladı ve sonra biraz zaman aldı ve bitti.
‫Şimdi bu kod satırının aslında doğru bir şekilde yürütüldüğünü ve konsolumuzu durdurduğunu görüyorsunuz.
‫O halde konsolu açık tutmak için konsol okuma satırını alalım.
‫Yani üç numaralı iş parçacığı başladı ve 5 saniye sonra sona ermeli, böylece üç numaralı iş parçacığı sona
‫erdi.
‫Şimdi diyelim ki görevin gerçekten yerine getirildiğini görmek istiyoruz.
‫Yani doğru olarak ayarlamak işe yaradı mı yaramadı mı?
‫Biliyoruz çünkü aksi takdirde bir sonraki adıma geçemezdik.
‫Ama burada konsolun doğru hattını kullanalım.
‫Görev tamamlandı ve burada sadece test edilecek olan sonucu yazacağım.
‫Burada da görebileceğiniz gibi test sadece bir kase, çünkü ya işe yaradı ya da yaramadı.
‫Yani bunu doğru ya da yanlış olarak satıyoruz.
‫Hadi bir bakalım.
‫Ve şimdi 5 saniye beklememiz gerekiyor.
‫Üç numara 5 saniye başladı ve sonra üç numara sona erdi ve görevin tamamlandığını söylüyor doğruya eşittir.
‫İşte bu satırda olan da bu.
‫Yani basitçe bu özel görevle işinin bittiğini söylüyor.
‫Tamam.
‫Bu videoda, bir görevin yapılıp yapılmadığını gösteren görev tamamlama kaynağını nasıl kullanabileceğinizi
‫gördünüz.
‫Bunu true olarak ayarlayabilir veya sadece bir şey yapıp bitirebilirsiniz.
‫Bir süre sonra, bir iş parçacığını farklı bir şekilde oluşturabileceğinizi de gördünüz, böylece
‫aslında bir iş parçacığı değişkeni oluşturabilirsiniz, tabii ki bunu başlatmanız gerekir ve basitçe thread sınıfının bir
‫nesnesi gibi kullanabilirsiniz.
‫Daha sonra, belirli bir iş parçacığının kimliğini bilmek için iş parçacığı kimliğini nasıl yönetebileceğimizi gördük.
‫Aynı anda birden fazla iş parçacığı oluşturduğumuz bir sonraki videoda bu konuyu
‫biraz daha inceleyeceğiz ve makinemiz tarafından nasıl ele alınacağını göreceğiz.
‫Bir sonraki videoda görüşmek üzere.