2010-02-19 10 views
10

के साथ समानांतर जावा कार्य को रोकना मैं दो जावा प्रोग्राम विकसित कर रहा हूं जो अलग-अलग वीएम में चलते हैं जिनमें एक सामान्य सर्वर/क्लाइंट संबंध होता है। चींटी के समानांतर/अनुक्रमिक कार्यों का उपयोग करके मैं सर्वर और फिर क्लाइंट को चलाने के लिए चींटी प्राप्त करने में सक्षम हूं। अब मुझे यह पसंद आएगा ताकि जब ग्राहक प्रक्रिया बंद हो जाए, तो चींटी सर्वर को मार देती है। मैंने इसे विशिष्ट सर्वर अनुप्रयोगों (जैसे टॉमकैट) के लिए कस्टम चींटी कार्यों के साथ किया है, क्या सामान्य जावा प्रक्रियाओं के साथ ऐसा करने के लिए कोई विधि मौजूद है?चींटी

उत्तर

8

चूंकि आप सर्वर एप्लिकेशन विकसित कर रहे हैं, तो आप इसे "शट डाउन" कमांड सुन सकते हैं। तो फिर तुम चींटी भेजने यह शटडाउन आदेश हो सकता है जब ग्राहक बाहर निकलता है, कुछ की तरह:

<parallel> 
    <server .../> 
    <sequential> 
     <client ... /> 
     <!-- client has finished, send stop command to server --> 
    </sequential> 
</parallel> 

एक अन्य विकल्प जिसके लिए आप एक daemons तत्व के अंदर सर्वर शुरू करने के लिए है काम कर सकते हैं।

<parallel> 
    <daemons> 
     <server .../> 
    </daemons> 
    <sequential> 
     <client ... /> 
    </sequential> 
</parallel> 

यह एक डेमॉन सूत्र में सर्वर रन है, जो पूरा करने से चींटी नहीं रोका जाएगा कर देगा। जब चींटी बंद हो जाती है, तो आपके सर्वर समेत सभी डिमन थ्रेड समाप्त हो जाएंगे।

+0

बिल्कुल सही, यह बिल्कुल है। – Sandro