在一个类中调用多线程方法

时间:2014-11-13 07:42:48

标签: java multithreading inner-classes

我的Java程序有一个包含两个方法的类,这些方法将由线程调用。如何启动两个线程,一个调用一个方法,另一个调用另一个方法?我应该使用两个内部类,每个类实现Runnable接口还是别的什么?

public class Example {
    public void read(String key) { /* some code */ }
    public void write(String key, InputStream inputStream) { /* some code */}
}

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

取决于方法中的代码。但是如果它们实际上只是对某些资源进行写入和读取,则可以并行执行读取而不会导致问题(因为您只是在阅读)。但对于写作而言则不同。一次只允许一个线程写入相同的资源,同时没有其他线程可以读取或写入(互斥)。您可以查看有关读/写锁的this tutorial,这很好地代表了共享锁读取和处理写操作以保持一致性的想法。

重写问题后编辑:启动2个主题,每个主题调用一个方法:

Thread t1 = new Thread(new Runnable() {

    @Override
    public void run() {
        write(..);
    }
});
Thread t2 = new Thread(new Runnable() {

    @Override
    public void run() {
        read(..);
    }
});
t1.start();
t2.start();