2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
कारणं यत् वितरितानि तालानि कुर्वन् अहं यूनिट् टेस्ट् मध्ये १० थ्रेड् निर्माय ततः तान् आरब्धवान् । प्रत्येकं थ्रेड् run मेथड् मध्ये सामग्रीं मुद्रयिष्यति, परन्तु परीक्षणपरिणामाः वस्तुतः किमपि न निर्गच्छन्ति । अहं बहु भ्रमितः अभवम्, ततः अहं अनुमानं कृतवान् यत् मुख्यसूत्रः उपसूत्रस्य निष्पादनं समाप्तवान् स्यात् तथा च प्रत्यक्षतया समाप्तः अभवत् निश्चितम्, thread.join() इति योजयित्वा अपेक्षितं परिणामः प्राप्तः ।
मुख्यविधौ लिखिता चेत् एषा समस्या नास्ति, परन्तु एकपरीक्षणे एषा समस्या विद्यते ।
मूलसङ्केतः : १.
- @Test
- public void multipleThreadTest(){
- System.out.println(Thread.currentThread().getName());
- LockThread[] lockThreads = new LockThread[10];
- for (int i=0;i< lockThreads.length;i++){
- lockThreads[i] = new LockThread(new ZkNodeNoneBlockingLock("app"));
- }
- for (LockThread lockThread : lockThreads) {
- lockThread.start();
- }
- }
-
- private static class LockThread extends Thread{
- ZkNodeNoneBlockingLock locker;
- public LockThread(ZkNodeNoneBlockingLock locker){
- this.locker = locker;
- }
- @Override
- public void run() {
- boolean lock = locker.lock();
- System.out.println(this.getName() + (lock ? "上锁成功" : "上锁失败"));
- }
- }
परिवर्तितः कोडः : १.
- @Test
- public void multipleThreadTest(){
- System.out.println(Thread.currentThread().getName());
- LockThread[] lockThreads = new LockThread[10];
- for (int i=0;i< lockThreads.length;i++){
- lockThreads[i] = new LockThread(new ZkNodeNoneBlockingLock("app"));
- }
- for (LockThread lockThread : lockThreads) {
- lockThread.start();
- }
- for (LockThread lockThread : lockThreads){
- try {
- lockThread.join();
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- private static class LockThread extends Thread{
- ZkNodeNoneBlockingLock locker;
- public LockThread(ZkNodeNoneBlockingLock locker){
- this.locker = locker;
- }
- @Override
- public void run() {
- boolean lock = locker.lock();
- System.out.println(this.getName() + (lock ? "上锁成功" : "上锁失败"));
- }
- }
Thread.join() वर्तमानसूत्रम् अस्ति, अर्थात् मुख्यसूत्रं यावत् सूत्रसूत्रस्य निष्पादनं न समाप्तं तावत् निष्पादनं निरन्तरं कर्तुं न शक्नोति ।