javac 同时运行两个class类在一个java文件中
本博主最近在复习多线程的时候,发现一个问题,本博主竟然不会javac 同时运行两个class类在一个java文件中,故在此记录文本。
贴图如下:
源文件 Test.java代码详情如下:
import java.util.Random;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
public class Test {
public static void main(String[] args) {
ReadWriteDemo rw=new ReadWriteDemo();
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rw.write(new Random().nextInt(100));
}
}).start();
Runnable r=new Runnable() {
@Override
public void run() {
rw.read();
}
};
for(int i=0;i<100;i++) {
new Thread(r).start();
}
}
}
class ReadWriteDemo {
private int number=0;
private ReadWriteLock lock=new ReentrantReadWriteLock();
public void read() {
lock.readLock().lock();
try {
System.out.println(Thread.currentThread().getName()+"read"+number);
} finally {
lock.readLock().unlock();
}
}
public void write(int number) {
lock.writeLock().lock();
//修改数据
try {
System.out.println(Thread.currentThread().getName()+"write"+number);
this.number=number;
} finally {
lock.writeLock().unlock();
}
}
}
执行结果: