Слияние кода завершено, страница обновится автоматически
#include "include/jvm/Stream/ClassRead.h"
#include "include/jvm/classFile/ClassFileParser.h"
#include "include/jvm/oop/InstanceKlass.h"
#include "include/jvm/intepreter/BytecodeStream.h"
#include "include/jvm/classFile/BootClassLoader.h"
#include "include/jvm/native/JavaNaticeInterface.h"
#include "include/jvm/runtime/JavaThread.h"
#include "include/jvm/memory/MethodArea.h"
#include "include/jvm/memory/MemoryPool.h"
#include "include/jvm/memory/Heap.h"
#include "include/jvm/util/BlockingQueue.h"
#include "include/jvm/runtime/ThreadPool.h"
#include "src/jvm/test/Test.h"
#include "include/jvm/intepreter/CodeRunBase.h"
#include <unistd.h>
#include "include/jvm/native/CodeRunNative.h"
void startVM();
void threadPoolTest();
int main() {
startVM();
// threadPoolTest();
};
void startVM() {
CodeRunBase::initCodeRun();
CodeRunNative::initCodeRun();
MemoryPool::initMemoryPool(1024 * 1024);
MethodArea::initMemoryPool(1024 * 1024);//初始化方法区
Heap::initMemoryPool(1024 * 2);//初始化堆
string myPath = "jvm/HelloWorld.class";
InstanceKlass *klass = BootClassLoader::loadKlass(myPath);//加载main方法所在类
// InstanceKlass *klass = BootClassLoader::loadKlass(ClassRead::readByPath("/Users/eba/Documents/HelloWorld.class"));
MethodInfo *m = JavaNaticeInterface::getMethod(klass, "main", "([Ljava/lang/String;)V");//找到main方法
JavaThread *curThread = new JavaThread;//创建线程
Threads::threadList.push_back(curThread);
Threads::curThread = curThread;
JavaNaticeInterface::callStaticMethod(m);//执行main方法
}
void threadPoolTest() {
ThreadPool *pool = new ThreadPool(1, 3, -1);
for (int i = 0; i < 1000; ++i) {
ThreadRunnable *tr = new Test(i);
pool->execute(tr);
}
printf("%s\n", "main");
while (true) {
sleep(2);
// ThreadRunnable *tr = new Test(99999999);
// pool->execute(tr);
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )