今天成功模拟了java线程中,start方法调用run方法的过程,特此记录。
环境:centos7,jdk1.8 ,gcc
- 首先构建好一个java类,用来模拟线程。
public class MyThread {
//JVM加载自定义的C库,此时还未创建该库
static {
System.loadLibrary("MyThreadNativeLibrary");
}
//模拟run方法
public void run() {
System.out.println("I am a mythread , I'm running!");
}
//模拟start方法,调用start0
public void start() {
start0();
}
//native方法start0,两件事 1:在操作系统创建一个线程 2:该线程会调用run方法
private native void start0();
public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();
}
}
2. 将MyThread.java上传到linux系统中,执行命令,得到编译好的class文件。
javac MyThread.java
3.java文件生成对应的h文件。