क्या एक नई स्वतंत्र जेवीएम प्रक्रिया का उपयोग कर जावा में "सी" जैसे कांटा करना संभव है?जावा - सी-फोर्क फोर्क?
कैसे?
क्या एक नई स्वतंत्र जेवीएम प्रक्रिया का उपयोग कर जावा में "सी" जैसे कांटा करना संभव है?जावा - सी-फोर्क फोर्क?
कैसे?
मजेदार, मैं बस इस पर काम कर रहा हूं: जावा प्रक्रिया अन्य जावा प्रक्रियाओं को चला रही है। मैंने आलेख From Runtime.exec() to ProcessBuilder को ठोस आधार के रूप में उपयोग किया, और When Runtime.exec() won't आउटपुट स्ट्रीम को घुमाने के लिए अच्छी सलाह के रूप में।
पीएस .: उन लोगों के लिए, मुझे ऐसा करना था (नए थ्रेडों को बढ़ाने के बजाए) क्योंकि अभी तक एक और जावा प्रक्रिया इन प्रक्रियाओं की उपस्थिति की जांच कर रही है, जो आम तौर पर शेल कमांड के साथ अलग-अलग भागते हैं।
वे सिर्फ 'Runtime.exec() 'का संदर्भ लें, जो' फोर्क()' के बाद बच्चे को स्पष्ट रूप से नियंत्रित करने में सक्षम होने से अलग है। – ShiDoiSi
क्या आप उत्तर अपडेट कर सकते हैं और ProcessBuilder के लिए लिंक को ठीक कर सकते हैं? –
ऐसा लगता है कि यह वास्तव में कांटा नहीं है लेकिन निष्पादन का नया बच्चा इस तरह से प्रक्रिया करता है जो कांटे जैसे कुछ लाभ देता है। – rogerdpack
ध्यान दें कि यह केवल पॉज़िक्स जैसी प्रणाली पर काम करता है (इसलिए लगभग सभी चीजें विंडोज़) – CharlesB
आप अकुमा के स्रोत कोड को पढ़ सकते हैं, और अकुमा की तरह जेएनए का उपयोग करके पॉज़िक्स एपीआई का उपयोग कर सकते हैं। – Arnaud
Application Isolation API (JSR 121) परिचय Isolate
जो इस उपयोग के मामले को संबोधित वास्तव में क्या देख हो रहा है।
जहां तक मैं देख सकता हूं, अलगाव API वर्तमान (1.8) जेडीके के तहत समर्थित नहीं है। एक प्रयोगात्मक एमवीएम (मल्टीटास्किंग वर्चुअल मशीन) प्रोजेक्ट है जो करता है, लेकिन इसे मुख्य लाइन में अपना रास्ता नहीं मिला। इसके अलावा मुझे ऐसा लगता है कि अलगाव एपीआई एक कांटा करने की अनुमति नहीं देता है, जहां फोर्किंग प्रक्रिया की स्थिति बच्चे को क्लोन कर दी जाती है: जहां तक मैं समझ सकता हूं कि अलग विधि के साथ अलग शुरू होता है, और (निश्चित रूप से) अलग अलग राज्य साझा नहीं करते हैं। –
हो सकता है कि आप जो कुछ हासिल करने की कोशिश कर रहे हैं उसके बारे में अधिक जानकारी प्राप्त कर सकें? जैसा कि बताया गया है, आप एक और प्रक्रिया निष्पादित कर सकते हैं, जो कि जेवीएम का एक और उदाहरण हो सकता है, लेकिन यह आपको राज्य में साझा नहीं करता है क्योंकि फोर्क() सी में होता है। दूसरी तरफ, आप थ्रेड चला सकते हैं, लेकिन वहां आपको फोर्क() के मुकाबले ज्यादा साझा करना होगा। –
मैं बस उस साझाकरण से बचना चाहता हूं जो थ्रेड का तात्पर्य है। आपकी चिंता के लिए Thks :) – sakana