一些面试的问题

去自如面试问到的进程相关的问题,问了一些基本的问题,跟之前node一样也是一知半解,一脸懵逼,回来总结一下。

1. 进程、线程、协程、goroutine

写的程序是代码,是静态的,只有执行起来才有进程。所以

进程就是计算机中的程序关于某些数据集合的一次运行活动,是系统进行资源分配和调度的基本单位。进程是程序的基本执行实体,占有独立的运行空间。

一个进程可以有多个线程,线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。

进程和线程的关系:

(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。
(3)CPU分给线程,即真正在CPU上运行的是线程。

协程,是比线程更轻量级的,本质上说用户态下的线程,需要用户自己来控制资源的释放而不是由系统来控制。由于需要程序自己来控制,他是非抢占式的。

goroutine是go中最基本的执行单位,每一个go程序至少有一个goroutine, 主goroutine。

2. go中make和new的区别

一是参数不同,new的参数只有一个,类型,make的参数有多个,第一个为类型,第二个为长度,slice第三个参数表示容量

二是针对的类型不同,new就比较简单了,随便一个类型都行

三是返回值不同,new返回的是类型的指针,make返回的就是类型。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值