दिलचस्प पोस्ट
Google ड्राइव PHP API – सरल फ़ाइल अपलोड Google-services.json में एकाधिक प्रोजेक्ट_एनम्बर / प्रेषक आईडी कैसे डालें एसक्यूएल रैंक () बनाम ROW_NUMBER () WPF में वर्तमान स्क्रीन के आकार को कैसे प्राप्त करें? आप कैसे निर्धारित करते हैं कि WPF हार्डवेयर या सॉफ़्टवेयर रेंडरिंग का उपयोग कर रहा है? एक ही मेज पर दो बार शामिल होने का सबसे अच्छा तरीका क्या है? तत्व में कोणीय एनजी-दोहराएँ सशर्त लपेट आइटम (एनजी-दोहरा में समूह आइटम) हेक्स मुद्रण करते समय प्रिंटफ़ केवल एक बाइट क्यों नहीं प्रिंट करता? एकल या दोहरे उद्धरण से घिरा नहीं हुआ स्थान का उपयोग कर स्ट्रिंग को विभाजित करने के लिए रेगेक्स 'कुंजी' और लैम्ब्डा अभिव्यक्ति का उपयोग करके अजगर अधिकतम फ़ंक्शन दिनों में पीएचपी में दिनांक अंतर? जावास्क्रिप्ट के साथ टेक्स्ट चौड़ाई की गणना करें JQuery सीएसएस संपत्ति का उपयोग कर पृष्ठभूमि-छवि सेट करना openCV प्रोग्राम संकलन त्रुटि "libopencv_core.so.2.4: साझा ऑब्जेक्ट फ़ाइल नहीं खोल सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं" उबुंटू 12.04 में क्या एएसपी.नेट एमवीसी संपर्क मैनेजर ट्यूटोरियल में निर्भरता इंजेक्शन लूप समस्या को हल करने का एक अच्छा / उचित तरीका है?

जावा थ्रेड उदाहरण?

क्या कोई ऐसे उदाहरण प्रोग्राम देता है जो एक सरल तरीके से जावा थ्रेड्स बताता है? उदाहरण के लिए, मेरे पास तीन धागे t1 , t1 और t3 । मुझे एक ऐसा कोड चाहिए जो दर्शाता है कि धागे एक साथ चलते हैं, और क्रमिक रूप से नहीं।

वेब के समाधान से एकत्रित समाधान "जावा थ्रेड उदाहरण?"

ये रहा एक सरल उदाहरण:

ThreadTest.java

 public class ThreadTest { public static void main(String [] args) { MyThread t1 = new MyThread(0, 3, 300); MyThread t2 = new MyThread(1, 3, 300); MyThread t3 = new MyThread(2, 3, 300); t1.start(); t2.start(); t3.start(); } } 

MyThread.java

 public class MyThread extends Thread { private int startIdx, nThreads, maxIdx; public MyThread(int s, int n, int m) { this.startIdx = s; this.nThreads = n; this.maxIdx = m; } @Override public void run() { for(int i = this.startIdx; i < this.maxIdx; i += this.nThreads) { System.out.println("[ID " + this.getId() + "] " + i); } } } 

और कुछ आउटपुट:

 [ID 9] 1 [ID 10] 2 [ID 8] 0 [ID 10] 5 [ID 9] 4 [ID 10] 8 [ID 8] 3 [ID 10] 11 [ID 10] 14 [ID 10] 17 [ID 10] 20 [ID 10] 23 

एक स्पष्टीकरण – प्रत्येक MyThread ऑब्जेक्ट 0 से 300 तक संख्या प्रिंट करने की कोशिश करता है, लेकिन वे उस सीमा के कुछ क्षेत्रों के लिए ही जिम्मेदार हैं। मैंने इसे सूचकांक द्वारा विभाजित करना चुना, साथ ही प्रत्येक धागे कुल धागे की संख्या से आगे कूद गया। तो t1 1 इंडेक्स 0, 3, 6, 9, इत्यादि

अब, आईओ के बिना, इस तरह की छोटी गणनाएं अभी भी लग सकती हैं जैसे धागे क्रमिक रूप से क्रियान्वित कर रहे हैं, यही वजह है कि मैंने आउटपुट का पहला भाग दिखाया। अपने कंप्यूटर पर, आईडी 10 के साथ इस आउटपुट धागे के बाद सभी एक ही बार खत्म हो जाते हैं, उसके बाद 9, फिर 8। यदि आप एक प्रतीक्षा या एक उपज डालते हैं, तो आप इसे बेहतर देख सकते हैं:

MyThread.java

 System.out.println("[ID " + this.getId() + "] " + i); Thread.yield(); 

और आउटपुट:

 [ID 8] 0 [ID 9] 1 [ID 10] 2 [ID 8] 3 [ID 9] 4 [ID 8] 6 [ID 10] 5 [ID 9] 7 

अब आप प्रत्येक धागा निष्पादन को देख सकते हैं, नियंत्रण को जल्दी दे सकते हैं, और अगले क्रियान्वयन कर सकते हैं।

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

एक सरल उदाहरण:

 public class Test extends Thread { public synchronized void run() { for (int i = 0; i <= 10; i++) { System.out.println("i::"+i); } } public static void main(String[] args) { Test obj = new Test(); Thread t1 = new Thread(obj); Thread t2 = new Thread(obj); Thread t3 = new Thread(obj); t1.start(); t2.start(); t3.start(); } } 

जावा एप्लिकेशन बनाएँ जिसमें आप दो धागे को परिभाषित करते हैं, अर्थात् टी 1 और टी 2, धागा टी 1 से यादृच्छिक संख्या 0 और 1 उत्पन्न होता है (एक सिक्का टॉस होता है)। 0 का अर्थ है सिर और एक पूंछ का अर्थ है। दूसरे धागा टी 2 उसी टी 1 और टी 2 को इस लूप को 100 गुना दोहराएंगे और अंत में आपके आवेदन को यह निर्धारित करना चाहिए कि टी 1 से कितनी बार टी 2 से उत्पन्न संख्या अनुमानित है और फिर स्कोर को प्रदर्शित किया जाए। उदाहरण के लिए यदि धागा टी 1 का अनुमान 100 में से 20 अंक होता है तो टी 1 का अंक 20/100 = 0.2 है यदि टी 1 अनुमान 100 नंबरों पर होता है तो इसे 1 अंक मिलता है