java 调用 v8_深入V8引擎-初始化默认Platform(1)

本文探讨V8引擎的初始化过程,重点关注如何创建和使用默认的Platform对象。Platform类作为V8的抽象层,管理线程池、调用栈等。DefaultPlatform是其默认实现,包含了线程池大小设置、任务执行者和线程的相关方法。TaskRunner和Thread紧密关联,用于任务调度。Task是工作单元,需要继承并实现Run方法。虽然没有涉及多线程的具体任务,但介绍了相关概念和流程。
摘要由CSDN通过智能技术生成

本来寻思着写一篇"'Hello' + ', World'"是怎么从JS代码编译然后输出的,然而compile过程的复杂性远超我的想象,强上怕会走火入魔,还是老老实实先回家种田,找点咸鱼方法先写着。虽然说是咸鱼方法,但是V8任何一块拿出来都不简单,之前讲的Time模块说实话大概是属于源码里面幼儿园级别的,这次试试难一点的。

V8的源码在本地编译完成后,会提供一个hello-world.cc的sample,里面有新手用户标准的初始化流程,如下。

int main(int argc, char*argv[]) {//Initialize V8.//这个方法在mac不作为

v8::V8::InitializeICUDefaultLocation(argv[0]);//读取指定名称的配置文件 也不用鸟

v8::V8::InitializeExternalStartupData(argv[0]);//生成一个默认的platform对象

std::unique_ptr<:platform> platform =v8::platform::NewDefaultPlatform();//初始化刚才的platform

v8::V8::InitializePlatform(platform.get());//V8的初始化

v8::V8::Initialize();//...

}

前两步不用去管,在入门阶段用不上。

第三步是主要内容,探究生成的默认platform对象(当然也可以选择自己定制一个platform对象),这个类主要负责管理线程池、调用栈、事件队列等一些杂活。

这一篇不会去深入方法一步一步走,里面内容太过于杂乱,跳来跳去的࿰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值