2008-11-13 6 views
50

क्या एक नई स्वतंत्र जेवीएम प्रक्रिया का उपयोग कर जावा में "सी" जैसे कांटा करना संभव है?जावा - सी-फोर्क फोर्क?

कैसे?

+1

हो सकता है कि आप जो कुछ हासिल करने की कोशिश कर रहे हैं उसके बारे में अधिक जानकारी प्राप्त कर सकें? जैसा कि बताया गया है, आप एक और प्रक्रिया निष्पादित कर सकते हैं, जो कि जेवीएम का एक और उदाहरण हो सकता है, लेकिन यह आपको राज्य में साझा नहीं करता है क्योंकि फोर्क() सी में होता है। दूसरी तरफ, आप थ्रेड चला सकते हैं, लेकिन वहां आपको फोर्क() के मुकाबले ज्यादा साझा करना होगा। –

+0

मैं बस उस साझाकरण से बचना चाहता हूं जो थ्रेड का तात्पर्य है। आपकी चिंता के लिए Thks :) – sakana

उत्तर

10

मजेदार, मैं बस इस पर काम कर रहा हूं: जावा प्रक्रिया अन्य जावा प्रक्रियाओं को चला रही है। मैंने आलेख From Runtime.exec() to ProcessBuilder को ठोस आधार के रूप में उपयोग किया, और When Runtime.exec() won't आउटपुट स्ट्रीम को घुमाने के लिए अच्छी सलाह के रूप में।

पीएस .: उन लोगों के लिए, मुझे ऐसा करना था (नए थ्रेडों को बढ़ाने के बजाए) क्योंकि अभी तक एक और जावा प्रक्रिया इन प्रक्रियाओं की उपस्थिति की जांच कर रही है, जो आम तौर पर शेल कमांड के साथ अलग-अलग भागते हैं।

+2

वे सिर्फ 'Runtime.exec() 'का संदर्भ लें, जो' फोर्क()' के बाद बच्चे को स्पष्ट रूप से नियंत्रित करने में सक्षम होने से अलग है। – ShiDoiSi

+0

क्या आप उत्तर अपडेट कर सकते हैं और ProcessBuilder के लिए लिंक को ठीक कर सकते हैं? –

12

इस उत्तर शायद एक छोटे से देर से लेकिन है:

http://akuma.kohsuke.org/

अपने लिए

+0

ऐसा लगता है कि यह वास्तव में कांटा नहीं है लेकिन निष्पादन का नया बच्चा इस तरह से प्रक्रिया करता है जो कांटे जैसे कुछ लाभ देता है। – rogerdpack

+3

ध्यान दें कि यह केवल पॉज़िक्स जैसी प्रणाली पर काम करता है (इसलिए लगभग सभी चीजें विंडोज़) – CharlesB

+0

आप अकुमा के स्रोत कोड को पढ़ सकते हैं, और अकुमा की तरह जेएनए का उपयोग करके पॉज़िक्स एपीआई का उपयोग कर सकते हैं। – Arnaud

3

Application Isolation API (JSR 121) परिचय Isolate जो इस उपयोग के मामले को संबोधित वास्तव में क्या देख हो रहा है।

+1

जहां तक ​​मैं देख सकता हूं, अलगाव API वर्तमान (1.8) जेडीके के तहत समर्थित नहीं है। एक प्रयोगात्मक एमवीएम (मल्टीटास्किंग वर्चुअल मशीन) प्रोजेक्ट है जो करता है, लेकिन इसे मुख्य लाइन में अपना रास्ता नहीं मिला। इसके अलावा मुझे ऐसा लगता है कि अलगाव एपीआई एक कांटा करने की अनुमति नहीं देता है, जहां फोर्किंग प्रक्रिया की स्थिति बच्चे को क्लोन कर दी जाती है: जहां तक ​​मैं समझ सकता हूं कि अलग विधि के साथ अलग शुरू होता है, और (निश्चित रूप से) अलग अलग राज्य साझा नहीं करते हैं। –

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

  • कोई संबंधित समस्या नहीं^_^