线程同步

时间:2009-05-16 19:51:48

标签: java multithreading

我创建两个线程第一个线程来调用应用程序 和第二个线程,用于在第一个线程上调用应用程序产生的读取文件。 调用应用程序工作正常,但读取文件不起作用。

这是我的代码:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package reciverwindow;

import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * 
 */
public class NewClass1 implements Runnable {

    public static void main(String[] args) {

        CallMatlab c = new CallMatlab();
        CUI m = new CUI();
        Thread t1 = new Thread(c);
         t1.start();
        Thread t2 = new Thread(m);

        t2.start();
       /* try {
            t2.sleep(3);
        } catch (InterruptedException ex) {
            Logger.getLogger(NewClass1.class.getName()).log(Level.SEVERE, null, ex);
        }
    }*/


   synchronized (t2) {
            try {
                t2.wait(3);
                  t2.notifyAll();
            } catch (InterruptedException ex) {
                Logger.getLogger(NewClass1.class.getName()).log(Level.SEVERE, null, ex);
            }
            }


    }

    public void run() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}

1 个答案:

答案 0 :(得分:4)

您可能希望发布更多代码,因为您不确定要执行的操作以及同步要求是什么。

你的t2.wait(3)有什么特别之处。你为什么要等三毫秒?也许你的意思是三秒钟(3000),这仍然存在风险,但可能适合你的情况?