当前位置: 首页 > news >正文

素材网站pinterestwordpress 图片连接插件

素材网站pinterest,wordpress 图片连接插件,php网站开发什么,分享类网站源码🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

🐶博主主页:@ᰔᩚ. 一怀明月ꦿ 

❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C++,linux

🔥座右铭:“不要等到什么都没有了,才下定决心去做”

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀

目录

线程

线程的概念

linux并不存在真正意义上的线程,而是利用进程的资源模拟实现线程的

ps -aL

CPU 的局部性原理

cache:高速缓存


线程

线程的概念

线程是比进程更加轻量化的执行流/线程是在进程内部执行的一种执行流

在 Linux 中,线程是指在同一进程内并发执行的轻量级执行单元。与进程不同的是,线程共享相同的地址空间和其他资源,包括文件描述符、信号处理和状态信息。每个线程都有自己的栈,但它们共享数据段、代码段和其他内存部分。这使得线程之间的切换比进程之间的切换更加高效。

线程是CPU调度的基本单位/进程是承担系统资源的基本实体

创建一个线程,只需要创建pcb,不需要创建虚拟地址空间、页表等,多个进程pcb指向一个虚拟地址空间即可

os如果支持线程,也必须管理线程,先描述,再组织,TCB(linux中不会单独设计线程TCB,因为线程大多数东西,都是和PCB差不多,所以只需要复用即可,windows是单独设计了一套TCB)

linux并不存在真正意义上的线程,而是利用进程的资源模拟实现线程的

事例

#include<iostream>
#include<pthread.h>
#include<unistd.h>using namespace std;void* threadroutine(void* arg)
{
const char* threadname=(const char*)arg;while(true)
{
cout<<"I am a new thread"<<threadname<<endl;
sleep(1);
}
}int main(){
//这里已经有进程了
pthread_t tid;pthread_create(&tid,nullptr,threadroutine,(void*)"thread 1");//主线程
while(true)
{
cout<<"I am main thread"<<endl;
sleep(1);
}
return 0;}结果:
[BCH@hcss-ecs-6176 2_21]$ ./testThread 
I am main thread
I am a new threadthread 1
I am main thread
I am a new threadthread 1
I am main thread
I am a new threadthread 1
I am main thread
I am a new threadthread 1
I am main thread
I am a new threadthread 1[BCH@hcss-ecs-6176 2_21]$ while :; do ps ajx | head -1 && ps ajx | grep testThread | grep -v grep; sleep 1; done PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND6528  2570  2570  6528 pts/5     2570 Sl+   1000   0:00 ./testThreadPPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND6528  2570  2570  6528 pts/5     2570 Sl+   1000   0:00 ./testThreadPPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND6528  2570  2570  6528 pts/5     2570 Sl+   1000   0:00 ./testThreadPPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND6528  2570  2570  6528 pts/5     2570 Sl+   1000   0:00 ./testThreadPPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND6528  2570  2570  6528 pts/5     2570 Sl+   1000   0:00 ./testThreadPPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND6528  2570  2570  6528 pts/5     2570 Sl+   1000   0:00 ./testThreadPPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND从结果可以知道,主线程和新线程都向屏幕输出了,并且通过ps指令检测只有一个进程

ps -aL

ps -aL 命令用于显示系统中所有进程的详细信息,包括每个线程的信息。在 ps -aL 命令中,-a 选项表示显示所有用户的进程,-L 选项表示显示每个线程的信息。这样,执行该命令后会列出系统中所有进程及其相关的线程信息。

事例

[BCH@hcss-ecs-6176 2_21]$ ps -aLPID   LWP TTY          TIME CMD//轻量级进程
11501 11501 pts/5    00:00:00 testThread
11501 11503 pts/5    00:00:00 testThread
11780 11780 pts/1    00:00:00 ps
29191 29191 pts/2    00:00:00 top在pcb中有一个LWP字段,它和pid类似的

CPU调度的时候看的都是LWP

如果进程里面只有一个pcb,那么这个线程的pid和lwp数值是一样的

如果进程里面只有多个pcb,那么这个主线程的pid和lwp数值是一样的,其他线程的pcb和lwp是不一样的

线程间通信的成本很低,因为他们共享的是同一份资源,而进程间通信的成本就比较高

线程之间切换,不用切换cpu中所有的寄存器

进程之间切换,需要切换cpu中所有的寄存器

CPU 的局部性原理

CPU 的局部性原理是指在程序访问内存时,程序很可能会重复访问一组相邻的内存地址,而不是随机地访问各个内存地址。这种局部性原理通常分为两种类型:时间局部性和空间局部性。

1. 时间局部性(Temporal Locality)

时间局部性是指如果一个数据被访问过一次,那么在不久的将来它可能会再次被访问。这意味着程序倾向于重复使用最近访问过的数据。CPU 利用时间局部性可以减少从内存中加载数据的次数,提高程序的性能。

2. 空间局部性(Spatial Locality)

空间局部性是指如果一个数据被访问过一次,那么与该数据相邻的数据也很可能会在不久的将来被访问。这意味着程序倾向于访问连续内存地址中的数据。CPU 利用空间局部性可以通过预取缓存行等技术来提前加载相邻数据,减少访问延迟,进而提高程序的性能。

cache:高速缓存

缓存的作用是提高 CPU 的性能。CPU 访问主内存需要花费很长时间,而缓存可以存储 CPU 频繁访问的指令和数据,以便快速地响应 CPU 的访问请求。当 CPU 访问主内存时,如果所需数据已经存储在缓存中,则可以直接从缓存中获取数据,从而避免了访问主内存所需的长时间延迟。这种方式称为缓存命中(cache hit)。

线程间切换,不需要切换cache

线程切换为什么效率高

1.寄存器切换的少

2.cache不需要重新切换

时间片也要被内部的线程瓜分,时间片也是资源

 🌸🌸🌸如果大家还有不懂或者建议都可以发在评论区,我们共同探讨,共同学习,共同进步。谢谢大家! 🌸🌸🌸   

http://www.yayakq.cn/news/790003/

相关文章:

  • 企业建设网站的seo常用的工具
  • 网站开发的就业前景如何推广手段有哪些
  • 做本地网站赚钱吗?时尚flash网站
  • 做网站投放广告电商网站建设参考文献
  • 中国建设银行网站易方达消费那种退不掉的网站怎么做的
  • 手机网站显示建设中会计培训班多少钱
  • 上海市场调研公司seo推广技巧
  • 临沂的网站建设网页版word在线编辑
  • 自己做网站吗安徽建工集团网站
  • 17网站一起做网店怎么样dw网页设计图片链接
  • 宜昌网站制作公司排名域名注册要求
  • 手机端的网站首页该怎么做怎么把自己做的网站发布
  • 外贸网站推广建站顺的品牌网站设计价位
  • 唐山网址建站企业网站建设合同书.doc
  • 岳阳企业网站定制开发互联网网站建设是什么
  • 南昌企业网站设计建设制作自己做网站要学什么软件
  • 网站建设与维护书籍wordpress Dux1.5下载
  • 安义南昌网站建设公司拓者设计吧现代效果图
  • 东莞网站设计与制作公司关键词搜索引擎工具爱站
  • 建设网站去哪里找中小学 网站建设 通知
  • 旅游网站开发网站设计报告书兰州网站建设q479185700強
  • 网站建设专员工作总结网页设计班级网站怎么做
  • 做视频网站视频山西太原今天的消息
  • 律师个人网站有用吗网站后台管理系统模板下载
  • 太原网站建设制作报价网络推广企业营销
  • 设计公司网站时什么是重要的dede网站模板页在什么文件夹
  • 做网站怎么赚钱 知乎营销推广网
  • 成都建设厅官方网站查询怎么编辑网站源代码
  • 做消费网站流程请问哪里可以做网站
  • 小说网站开发流程专业的网站设计