nodejs 模拟试卷
NodeJS进程与线程管理专题测试
- 进程与线程概念:Node.js单线程事件循环本质、进程线程区别、进程模型特点、多进程多线程应用场景
- child_process模块:四种创建子进程方法区别、spawn使用方式、exec回调参数、fork与IPC通信
- cluster模块:工作模式、主进程工作进程判断、进程管理策略、调度策略、常用事件
- 进程间通信:IPC消息通道、通信数据限制、通信使用方法、其他通信方式
- worker_threads模块:与cluster区别、创建Worker方法、parentPort通信、数据传递方式、核心对象
- 事件循环与线程池:libuv线程池作用、线程池配置、阻塞主线程影响
- 进程管理与监控:process对象作用、process.exit使用、信号处理、优雅关闭、PM2进程守护
试卷习题(22 题)
参考答案在文末单选题
1
单选题
在Node.js中,父子进程之间最常用的通信方式是?
2
单选题
以下关于进程和线程区别的描述,错误的是:
3
单选题
关于process.exit()方法,以下说法正确的是?
4
单选题
child_process模块中,哪个方法最适合执行长时间运行的子进程并与之进行交互式通信?
5
单选题
以下代码执行后,输出结果的最大尺寸受什么参数限制?
JavaScript
const { exec } = require('child_process');
exec('find / -type f', (error, stdout, stderr) => {
console.log(stdout);
});
6
单选题
关于Node.js中进程和线程的说法,正确的是:
7
单选题
libuv线程池主要用于处理以下哪种类型的操作?
8
单选题
Node.js cluster模块的工作模式是?
9
单选题
在cluster模块中,判断当前进程是主进程还是工作进程应使用哪个属性?
10
单选题
当cluster工作进程异常退出时,以下哪种策略可以自动重启工作进程?
11
单选题
以下哪个方式可以正确创建一个Worker线程?
12
单选题
worker_threads模块与cluster模块的主要区别是?
多选题
13
多选题
关于child_process.spawn()方法,以下说法正确的是?
14
多选题
在Node.js IPC通信中,以下哪些说法正确?
15
多选题
cluster模块支持哪些常用事件?
16
多选题
worker_threads模块支持哪些数据传递方式?
17
多选题
关于libuv线程池,以下说法正确的是?
18
多选题
Node.js进程模型的特点包括哪些?
19
多选题
实现Node.js进程优雅关闭的关键步骤包括?
填空题
20
填空题
cluster模块的调度策略可以通过设置,其中表示轮询调度策略,表示让操作系统决定调度策略。Linux默认使用SCHED_RR策略。
21
填空题
worker_threads模块中,类用于创建工作线程,用于Worker与主线程通信,用于传递初始数据,MessageChannel用于创建专用通信通道。
22
填空题
child_process.exec()方法的回调函数接收三个参数:表示执行错误,表示标准输出内容,表示标准错误输出。当命令执行成功时,error参数为null。
参考答案
1.C
2.D
3.A
4.C
5.B
6.B
7.C
8.C
9.A
10.A
11.A
12.A
13.A;C;D
14.A;B;C;D
15.A;B;C;D
16.A;B;C;D
17.A;B;C
18.A;C;D
19.A;B;C;D
20.cluster.schedulingPolicy;cluster.SCHED_RR;cluster.SCHED_NONE
21.Worker;parentPort;workerData
22.error;stdout;stderr
