面试题打卡冲冲冲!!!

1,Ascill,unicode,utf-8的区别

答:上世纪60年代,美国制订了一套编码,对英语字符和二进制的关系做了统一规定,称为Ascill码。Ascill码一共制订了128个字符的编码,因此一个字节的八位只用后七位,第一位置零。            Unicode顾名思义独一无二的编码,这是一种所有符号的编码,它解决了一串二进制数字因为不同的编码方式而出现的乱码问题(如:发邮件因编码不同出现的乱码)。(只是只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。因此出现了多种存储方式来表示Unicode,导致Unicode不能普及,直到互联网的出现。)                                                       utf-8就是互联网上使用最广的一种Unicode实现方式。utf-8(utf-16,utf-32基本不用)是Unicode的实现之一。                                                                                                                         编码规则如下:

1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,
UTF-8编码和ASCII码是相同的。
2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。
剩下的没有提及的二进制位,全部为这个符号的unicode码。

参考于https://blog.csdn.net/liugec/article/details/76400793

2,进程线程的区别

进程是系统中正在运行的程序,每个进程都有自己独立的地址空间,一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要时用进程间通信,比如管道,文件,套接字。

线程进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。线程是进程的一个特定执行路径,当一个线程修改了进程的资源,它的兄弟线程可以立即看到这种变化。

与进程不同的是同类的多个线程共享进程的方法区资源,但每个线程有自己的程序计数器虚拟机栈本地方法栈。

区别总结:

根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位

资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。

包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。

内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的

影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。

执行过程:每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行。

切换关系:线程上下文切换比进程上下文切换快的多。

参考于https://blog.csdn.net/ThinkWon/article/details/102021274

3,为什么线程切换比进程切换开销小(快的多)

进程切换会导致页表、cache、TLB中的内容发生变化,原进程保存的内容无效,新的进程必须重新加载,导致缺页中断增多,cache,TLB也命中率下降。而线程切换会保留页表、cache、TLB中的内容,因为多个线程之间共享进程的这部分资源。

4,进程和线程的选择

1,需要频繁创建销毁的优先使用线程;因为进程的创建销毁代价很大

2,需要大量计算,切换频繁时使用线程,比较耗时的操作时使用线程

3,因为对cpu系统的效率使用上线程更占优势,所以可能发展到多机分布用进程,多核分布用线程

4,并行操作用线程,如c/s架构的服务端并发线程响应用户的请求

5,需要更稳定安全时,适合选择进程:需要速度时,选择线程更好。

个人建议:多看几篇文章,弄清原理,记得更牢。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Boss_ssp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值