JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

大厂多线程面试必问 问题剖析 多线程线程池面试题

wys521 2024-10-21 10:24:08 精选教程 42 ℃ 0 评论

前言

一起学习的可以后台私信“资料”送学习视频资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等等。。。),免费分享




多进程和多线程的应用场景
多进程和多线程的优缺点
协程框架你敢用吗
线程池:计算密集型N+1线程
10密集行2*N是怎么来的,到底是怎么算出来的?

多进程 nginx
多线程 redis 6.0、memcache


nginx为什么选择多进程 http服务器 不同的worker进程不需要协作的多进程的通信效率相对多线程会低一些
redis ------io线程-------- 数据结构的操作 多线程需要协作 没有多线程容易共享资源效率更高

多进程和多线程 创建开销真的非常大 线程协程的问题






创建和销毁进程,线程耗时对比

1-process.c 1-thread.c
单纯创建进程线程(10万次)



real time:实际使用时间

为什么引入线程?


为什么引入线程?-线程

并发实体尽可能去共享进程的资源,比如共享一块地址空间。共享个页表和一块物理内存。


线程的概念

线程概念
·线程是一个进程内部的控制序列。控制序列可以理解为一个行流。进程内部是指虚拟地址空间
·一个进程至少有一个线程(主线程)。

进程到线程
进程:承担分配系统资源的实体
·线程:共享进程所获得资源



图中,有3个PCB,在以前的认知里,我们叫做3个进程


Linux使用的线程库

LinuxThreads是用户空间的线程库,所采用的是线程-进程1对1模型(即一用户线程对应一个轻量级进程,而一个轻量级进程对应一个内核调度体),线程的调度等同于进程的调度,调度交由内核完成,而线程的创建、同步、毁由核外线程库完成(LinuxThtreads已绑定到GLIBC中发行)。
Linux内核源码情景分析(毛德操)


线程与进程的区别1
资源分配:资源分配的基本单位是进程,而线程是调度的基本单进程与进程之间是独立的,一个进程的异常终止不会影响其它进(nginx多进程的方案),而线程与线程之间大部分是共享的,的异常终止会影响其它线程,会使进程终止。
·线程与线程大部分共享,但是也有一部分数据私有,线程ID、上(切换时候寄存器中的值)、自己独享一个栈空间、错误码、信字、调度的优先级。
调度和切换:线程上下文切换比进程上下文切换要快得多。



线程与进程的区别2

●进程的个体间是完全独立的,而线程间是彼此依存的。多进程环任何一个进程的终止,不会影响到其他进程。
多线程环境中,父线程终止,全部子线程被迫终止(没有了资源)。一个子线程终止一般不会影响其他线程,除非子线程执行了exit用。任何一个子线程执行exit(),全部线程同时灭亡。

总结:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表