2010-11-07 15 views

cevap

11

Java, java.util.concurrent paketine sahiptir ve ayrıca fork/join framework da vardır. katılmak/Çatal Java 7 scheduled for inclusion olmakla Brian Goetz ve diğerleri tarafından downloaded now ve Java 6.

Java eşzamanlılık ile sardı almak için iyi bir kitap Java Concurrency in Practice olduğu ile kullanılabilir olabilir.

+1

Çatal/birleştirme çerçevesinin görev paralel kitaplığı ile ilgisi var mı? – Nemo

+6

Bir .NET geliştiricisi değilim, ancak TPL hakkında okuduğum şeyden (örneğin, http://msdn.microsoft.com/en-us/library/dd460717.aspx), fork/join görünüyor TPL ile çok ortak nokta var. Örneğin, "TPL, eşzamanlılık derecesini dinamik olarak mevcut olan tüm işlemcileri en verimli şekilde kullanır." Buna karşılık, bu çatal/birleştirme belgelerinden: "Çatal/birleştirme işlemleri için adaylar çoğunlukla paralel bölme-ve-fethetme teknikleri kullanılarak ifade edilebilenleri içerir: ... iki (veya daha fazla) parçada kırın ve sonra Bu parçaları paralel olarak çöz " –

+0

Bağlantı yoluyla elde edilen örnek bölüm gerçekten güzel. Kitabı almak istememi sağladı, ancak en son 2006'da yayınlandı, bu yüzden ne kadar güncel olduğunu bilmiyorum. – Philippe

3

Habanero-Java library (HJ-lib), Rice University adresinde geliştirilen bir pedagojik paralel programlama modeli olan Habanero-Java (HJ) 'nin yeni kütüphane uygulamasıdır. HJ-lib, veri paralelliği, boru hattı paralellik, akış paralellik, döngü paralellik ve bölün-ve-paralel paralellik gibi birçok farklı paralel model biçimini ifade edebilir.

HJ-lib, bu yapıların benzersiz kombinasyonlarını sağlayan tek bir programlama modelinde çok çeşitli paralel programlama yapılarını (örneğin, uyumsuz görevler, gelecekler, veriye dayalı görevler, forall, engeller, fazerler, işlemler, aktörler) birleştirir. (ör. iç içe geçmiş görev kombinasyonları ve aktör paralellikleri).

HJ-lib, lambda expressions kullanılarak oluşturulmuştur ve herhangi bir Java 8 JVM'de çalışabilir. Eski JVM'ler, uyumluluk için harici bytecode dönüştürmeleri araçlarına güvenerek hedeflenebilir. HJ çalışma zamanı, HJ görevlerinin oluşturulmasını, yürütülmesini ve sonlandırılmasını organize etmekten sorumludur ve hem iş paylaşımı hem de çalışma çalma programlayıcılarını içerir.

HJ-lib, Rice Üniversitesi'nde sunulan ikinci sınıf düzey COMP 322 course'dan temin edilen çok sayıda eğitim kaynağına sahip eğitimciler için çekici bir araçtır. Bu kaynaklar kütüphane API'sini öğrenmek için de kullanılabilir. API için Javadoc, also available'dur. Çeşitli paralel yapılar için

import static edu.rice.hj.Module1.*; 

public class HelloWorld { 

    public static void main(final String[] args) { 

     launchHabaneroApp(() -> { 

      finish(() -> { 
       async(() -> System.out.println("Hello")); 
       async(() -> System.out.println("World")); 
       async(() -> System.out.println("in")); 
       async(() -> System.out.println("HJ-lib")); 
      }); 

     }); 
    } 
} 

diğer örneklerine COMP 322 course website edinilebilir:

İşte size basit MerhabaDünya sürümüdür.