Şimdi, iş parçacığı bariyerleri ile çalışmak için uygulamamız gereken tüm API'leri veya
işlemleri tartışacağız.
Yani temel olarak üç API yazacağız, içinde iş parçacığı bariyeri, iş parçacığı bariyeri, bekleme ve iş parçacığı
bariyeri, iş parçacığı bariyerinin işleyişinin tüm mantığını yok edeceğiz iş parçacığı bariyerine gidecek.
Bekle.
Pekala, bu uygulayacağımız ana API'dir.
Thread barrier in it ve thread barrier destroy uygulanması çok basit API'lerdir.
Bu init API'sinde yapmanız gereken tek şey, bu iş parçacığı bariyerinin tüm üyelerini başlatmaktır.
Ve tartıştığımız gibi, bu API'nin ikinci argümanı bariyerin eşik sayısı değeridir.
İplik bariyeri ile ilgili tüm kodlar bu dizinde bulunabilir.
Bu çoklu iş parçacığı bariyeridir.
İş parçacığı bariyerinin uygulanmasını tamamladıktan sonra, bu dersin bir parçası olarak oluşturduğumuz iş parçacığı
kütüphanesinde iş parçacığı bariyeri ile ilgili tüm kodları kopyalayıp yapıştıracağız.
Doğru.
Başlangıç olarak, bu API'nin prototipini başlık dosyasında bildirmemiz gerekiyor, böylece multithreading
Bible slash thread barrier dizininde olduğumu ve thread barrier dot h başlık dosyasını zaten yazdığımı görebilirsiniz.
İşte bu, oluşturmanız gereken başlık dosyasıdır.
Ve bu başlık dosyasında, bu iş parçacığı bariyeri veri yapısı ile birlikte tartıştığımız iş parçacığı bariyerini temsil
eden aynı veri yapısını zaten kopyalayıp yapıştırdığımı görebilirsiniz.
Ayrıca iş parçacığı bariyerleri ile çalışmak için uygulamamız gereken üç API'yi de bildirdim.
Doğru.
Bu nedenle, ödevin bir parçası olarak uygulayacağımız API'lerin prototipi ile birlikte bir başlık dosyası
oluşturmanızı ve iş parçacığı bariyeri veri yapısı tanımını tanımlamanızı bekliyorum.
Bu ders videosunun ardından, thread barrier init fonksiyonunda thread barrier ve thread barrier
destroy fonksiyonlarının uygulanmasını sağlamanızı bekliyorum, sadece eşik sayısı değerini geçirdiğimiz
ikinci parametreye eşit olarak başlatmanız gerekir.
Doğru.
Mevcut bekleme sayısı değeri sıfır olarak başlatılmalı ve tüm koşul değişkenlerini ve
muteksleri iş parçacığı API'lerini kullanarak başlattığımız gibi başlatmanız gerekir ve tekrar hazırdır.
Boolean bayrağı varsayılan olarak true olarak ayarlanmalıdır.
Doğru.
Yani bu başlıkta yapmanız gereken şey bu.
Barrier init api thread barrier destroy API'de bu thread bariyerinin mutekslerini veya koşul değişkenlerini
thread barrier destroy API'de yok etmelisiniz.
Bu iş parçacığında bulunan muteksleri ve koşul değişkenlerini yok etmeniz yeterlidir.
Bariyer veri nesnesi.
Doğru.
Dolayısıyla, iş parçacığı bariyer nesnesini bu API'ye bir argüman olarak geçiriyoruz.
Bu iş parçacığı bariyeri tarafından işgal edilen belleği serbest bırakmamalısınız.
Belleği serbest bırakmak, iş parçacığı bariyerini yok etme API'sini çağıran çağıran işlevin sorumluluğunda
olmalıdır.
Doğru.
Bu nedenle, thread barrier dot c kaynak dosyasında iş parçacığı bariyerinin uygulanmasını ve iş parçacığı
bariyerinin yok edilmesini sağlayın.
Bir sonraki ders videosunda iş parçacığı bariyerinin uygulanmasını tartışacağız.
Bekle API.
İş parçacığı bariyeri işlevselliğinin tüm mantığının içine gireceği API budur.