2012-09-23 15 views
18

मैं अपने मुख्य जावा प्रोग्राम से जावा थ्रेड को स्पैन करना चाहता हूं और उस थ्रेड को मुख्य प्रोग्राम में हस्तक्षेप किए बिना अलग से निष्पादित करना चाहिए। यह इस प्रकार से होना चाहिए:पृष्ठभूमि में चलाने के लिए जावा में धागे बनाएं

  1. मुख्य उपयोगकर्ता
  2. द्वारा शुरू कार्यक्रम कुछ व्यापार काम करता है और एक नया धागा कि पृष्ठभूमि प्रक्रिया
  3. जैसे ही धागा बनाया जाता है, संभाल सकता बनाना चाहिए मुख्य कार्यक्रम तब तक इंतजार नहीं करना चाहिए जब तक कि तैयार धागे पूरा न हो जाए। वास्तव में यह .. सहज होना चाहिए
+1

संभव डुप्लिकेट http://stackoverflow.com/प्रश्न/2865315/धागे-इन-जावा) –

+2

क्या आपने [जावा ट्यूटोरियल कंसुरेंसी सेक्शन] (http://docs.oracle.com/javase/tutorial/essential/concurrency/index.html) देखा है? – Keppil

उत्तर

55

एक सीधी-सपाट रास्ता मैन्युअल रूप से धागा खुद के अंडे देने के लिए है: अगर आप एक से अधिक धागा अंडे या यह सब करने की ज़रूरत की जरूरत वैकल्पिक रूप से

public static void main(String[] args) { 

    Runnable r = new Runnable() { 
     public void run() { 
      runYourBackgroundTaskHere(); 
     } 
    }; 

    new Thread(r).start(); 
    //this line will execute immediately, not waiting for your task to complete 
} 

,

public static void main(String[] args) { 

    Runnable r = new Runnable() { 
     public void run() { 
      runYourBackgroundTaskHere(); 
     } 
    }; 

    ExecutorService executor = Executors.newCachedThreadPool(); 
    executor.submit(r); 
    //this line will execute immediately, not waiting for your task to complete 
} 
+1

धन्यवाद assylias .. !! मैं अपने दिमाग से बाहर भाग गया, जिसके परिणामस्वरूप यह बहुत ही बुनियादी प्रश्न थे। लेकिन आपके कोड ने मेरी मदद की! धन्यवाद।! – Sirish

+0

बहुत बहुत बहुत धन्यवाद! – Paolo

+0

जब मैं टास्क मैनेजर पृष्ठभूमि प्रक्रियाओं को देखता हूं तो सिस्टम नहीं दिख रहा है ..... इसके बारे में क्या ... कृपया –

5

ऐसा अनाम भीतरी वर्ग का उपयोग कर एक धागा बनाने का एक और तरीका है: बार-बार, तो आप उच्च स्तर समवर्ती एपीआई और एक प्रबंधक सेवा का उपयोग कर सकते हैं।

public class AnonThread { 
     public static void main(String[] args) { 
      System.out.println("Main thread"); 
      new Thread(new Runnable() { 
       @Override 
       public void run() { 
       System.out.println("Inner Thread"); 
       } 
      }).start(); 
     } 
    } 
3

और यदि आप इसे जावा 8 तरीके से करना पसंद, आप इसे इस रूप में सरल कर सकते हैं:

public class Java8Thread { 

    public static void main(String[] args) { 
     System.out.println("Main thread"); 
     new Thread(this::myBackgroundTask).start(); 
    } 

    private void myBackgroundTask() { 
     System.out.println("Inner Thread"); 
    } 
} 
[जावा में धागे] (की
संबंधित मुद्दे