Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Thread pool mantığı nasıl kurulmalı ?
#3
Yoğun bir tempoda çalıştığım için bu aralar, pek dikkatlice okuyamadım ama; anladığım kadarı ile çözüm getirmeye çalışayım. Öncelikle; Delphi'nin yeni versiyonlarında thread pool sınıfları var. Ama siz kendiniz implemente etmek isterseniz; belirli bir sayıda thread'i (best practice olarak, çekirdek sayısı * 2) başlatarak bir thread güvenlikli queue ile (Örneğin TThreadQueue) çalışabilirsiniz.

Kuyrukta bir şey olmadığı durumda, çalışan tüm threadler kuyruktan bir item çekemeyecek dolayısı ile bekler durumda olacaklardır. Kuyruğa bir şey geldiğinde kuyruğu consume etmeye çalışan 10 thread'den şanslı olanı kuyruktan item'i çekecek ve kuyruk yeniden boş kalacağı için 9 adet thread'de kuyruğa bir şey gelmesini bekler durumda olacaklardır.

Tüm thread'lerin bitmesini beklemeniz gerekiyor ise bir adet TCountDownEvent create eder ve ilk değerini thread sayısı olarak verirsiniz. Biten her thread TCountDownEvent nesnesinin Signal metodunu çağırır ve siz de uygulamanızın ana thread'inde; TCountDownEvent'i bekleyebilirsiniz. Ama benim bahsettiğim thread'in sonlanması. Yoksa, verilen işi yapıp işi bitirmesi değil. Zaten ilgili thread'iniz içinde bir nevi döngü ile dönmelisiniz.

Bunlar tabii, Delphi'nin sunduğu imkanlar. Windows API ile sunulan bir çok başka imkan da mevcut. Umarım; ne demek istediğinizi okuyabildiğim kısa paragraflardan doğru anlayabilmiş ve yardımcı olabilmişimdir.

Sizin için bir örnek hazırladım. Umarım faydalı olur.


.zip   Marman_ThreadQueue_Deneme.zip (Dosya Boyutu: 54,07 KB / İndirme Sayısı: 41)
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla


Bu Konudaki Yorumlar
Thread pool mantığı nasıl kurulmalı ? - Yazar: mrmarman - 12-12-2021, Saat: 14:47
Thread pool mantığı nasıl kurulmalı ? - Yazar: vkamadan - 13-12-2021, Saat: 10:12
Cvp: Thread pool mantığı nasıl kurulmalı ? - Yazar: Tuğrul HELVACI - 13-12-2021, Saat: 19:24
Cvp: Thread pool mantığı nasıl kurulmalı ? - Yazar: vedat35 - 13-12-2021, Saat: 20:29
Thread pool mantığı nasıl kurulmalı ? - Yazar: mrmarman - 13-12-2021, Saat: 21:58
Cvp: Thread pool mantığı nasıl kurulmalı ? - Yazar: vedat35 - 13-12-2021, Saat: 22:53
Thread pool mantığı nasıl kurulmalı ? - Yazar: mrmarman - 14-12-2021, Saat: 07:20
Thread pool mantığı nasıl kurulmalı ? - Yazar: mrmarman - 14-12-2021, Saat: 21:37
Thread pool mantığı nasıl kurulmalı ? - Yazar: mrmarman - 15-12-2021, Saat: 08:49
Cvp: Thread pool mantığı nasıl kurulmalı ? - Yazar: vedat35 - 15-12-2021, Saat: 12:22

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Question Delphi formunu nasıl otomatik tam ekran yapabilirim ? erdemklt0 2 321 23-01-2026, Saat: 10:02
Son Yorum: csunguray
  TMS Web Core- REST İşlemlerini Nasıl Yapabilirim? kajmerantime 0 426 13-06-2025, Saat: 14:07
Son Yorum: kajmerantime
  Thread içinde Web Browser Çalışırmı adelphiforumz 0 433 09-01-2025, Saat: 13:22
Son Yorum: adelphiforumz
  Delphi 7 deki pencereleri nasıl sabitleyebilirim? mxpain 1 553 12-12-2024, Saat: 08:50
Son Yorum: 3ddark
  resimdeki hatanin satirini nasil bulabiliriz. sadikacar60 6 1.110 25-11-2024, Saat: 19:18
Son Yorum: sadikacar60



Konuyu Okuyanlar: 1 Ziyaretçi