2010-11-07 21 views
9

मुझे लगता है कि जावा में कार्य समांतर पुस्तकालयों (.NET 4.0 का) के बराबर नहीं है। क्या यह सच है? सुधार क्या हैं कि .NET की यह विशेषता है कि जावा concurrency नहीं है।जावा में कार्य समानांतर लाइब्रेरी के बराबर

उत्तर

11

जावा में java.util.concurrent पैकेज है, और fork/join framework भी है। कांटा/में शामिल होने के जावा 7 में scheduled for inclusion है, लेकिन downloaded now और जावा 6.

जावा में संगामिति साथ पकड़ के लिए प्राप्त करने के लिए एक अच्छी किताब Java Concurrency in Practice है के साथ प्रयोग किया, ब्रायन गोएज़ और दूसरों के द्वारा हो सकता है।

+1

क्या फोर्क/फ्रेमवर्क में शामिल होने के लिए कार्य समांतर पुस्तकालय के साथ कुछ भी करना है? – Nemo

+6

मैं एक .NET डेवलपर नहीं हूं, लेकिन जो मैंने टीपीएल के बारे में पढ़ा है (उदाहरण के लिए, यह: http://msdn.microsoft.com/en-us/library/dd460717.aspx), कांटा/जुड़ाव प्रतीत होता है टीपीएल के साथ बहुत आम है। उदाहरण के लिए, "टीपीएल उपलब्ध सभी प्रोसेसर का सबसे कुशलतापूर्वक उपयोग करने के लिए गतिशीलता की डिग्री स्केल करता है।" इसकी तुलना में, यह कांटा/जॉइन प्रलेखन से है: "कांटा/प्रसंस्करण प्रसंस्करण के उम्मीदवारों में मुख्य रूप से उन लोगों को शामिल किया जाता है जिन्हें समानांतर विभाजन और जीतने वाली तकनीकों का उपयोग करके व्यक्त किया जा सकता है: ... इसे दो (या अधिक) भागों में विभाजित करें, और उसके बाद समानांतर में उन हिस्सों को हल करें " –

+0

लिंक के माध्यम से उपलब्ध नमूना अध्याय वास्तव में अच्छा है। इसने मुझे पुस्तक प्राप्त करना चाहता था, लेकिन यह 2006 में आखिरी बार प्रकाशित हुआ था, इसलिए मुझे यकीन नहीं है कि यह कितना अद्यतित है। – Philippe

3

Habanero-Java library (एचजे-लिब) हबानेरो-जावा (एचजे) का नया लाइब्रेरी कार्यान्वयन है, जो Rice University पर विकसित एक शैक्षणिक समांतर प्रोग्रामिंग मॉडल है। एचजे-लिब समांतर पैटर्न के कई अलग-अलग रूपों को व्यक्त करने में सक्षम है जिसमें डेटा समांतरता, पाइपलाइन समांतरता, धारा समांतरता, लूप समांतरता, और समानांतरता को विभाजित करना और जीतना शामिल है।

एचजे-लिब एक एकल प्रोग्रामिंग मॉडल में समानांतर प्रोग्रामिंग संरचनाओं (उदाहरण के लिए, एसिंक कार्य, वायदा, डेटा-संचालित कार्य, फोरल, बाधाएं, फासर, लेनदेन, अभिनेता) की एक विस्तृत श्रृंखला को एकीकृत करता है जो इन संरचनाओं के अद्वितीय संयोजन को सक्षम बनाता है (उदाहरण के लिए, कार्य और अभिनेता समांतरता के घोंसले संयोजन)।

एचजे-लिब lambda expressions का उपयोग करके बनाया गया है और किसी भी जावा 8 जेवीएम पर चलाया जा सकता है। संगतता के लिए बाहरी बाइटकोड ट्रांसफॉर्मेशन टूल पर भरोसा करके पुराने जेवीएम को लक्षित किया जा सकता है। एचजे रनटाइम एचजे कार्यों के निर्माण, निष्पादन और समाप्ति के लिए ज़िम्मेदार है, और इसमें वर्क-शेयरिंग और वर्क-चोरी शेड्यूलर दोनों शामिल हैं।

एचजे-लिब राइस विश्वविद्यालय में पेश किए गए सोफोरोर-स्तर COMP 322 course से उपलब्ध कई शैक्षणिक संसाधनों के साथ शिक्षकों के लिए एक आकर्षक टूल भी है। लाइब्रेरी एपीआई के बारे में जानने के लिए इन संसाधनों का भी उपयोग किया जा सकता है। एपीआई के लिए जावाडोक also available है।

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")); 
      }); 

     }); 
    } 
} 

विभिन्न समानांतर निर्माणों के लिए आगे उदाहरण COMP 322 course website से उपलब्ध हैं:

यहाँ एक सरल HelloWorld संस्करण है।

संबंधित मुद्दे