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

用easyui 做的网站重要新闻今天8条新闻

用easyui 做的网站,重要新闻今天8条新闻,有域名后怎么建网站,it软件外包公司目录 一、什么是线程分离 1.1pthread_detach 1.2pthread线程库存在的意义 1.3__thread线程的局部存储 1.4系统调用clone 一、什么是线程分离 1.1pthread_detach 默认情况下#xff0c;新创建的线程是joinable的#xff0c;线程退出后#xff0c;需要对其进行pthread_joi…目录 一、什么是线程分离 1.1pthread_detach 1.2pthread线程库存在的意义 1.3__thread线程的局部存储 1.4系统调用clone 一、什么是线程分离 1.1pthread_detach 默认情况下新创建的线程是joinable的线程退出后需要对其进行pthread_join操作否则无法释放资源从而造成系统泄漏。 如果不关心线程的返回值join是一种负担这个时候我们可以告诉系统当线程退出时自动释放线程资源。 int pthread_detach(pthread_t thread); 可以是线程组内其他线程对目标线程进行分离也可以是线程自己分离 : pthread_detach(pthread_self());//对自己进行分离 joinable和分离是冲突的一个线程不能既是joinable又是分离的。 而为什么要有线程分离或者是为什么要将线程进行分离呢我们在运行或者打开一个软件或应用时往往我们不去主动关闭该线程一般是不会主动进行退出的所以一般情况下主线程都是常驻的而在我们需要去进行其他操作时再由主线程去创建其他新线程所以主线程一般都是死循环运行的。而一般情况下我们都希望主线程是最后一个退出的。 所以线程分离底层依旧属于同一个进程只是不需要进行等待了。 1.2pthread线程库存在的意义 Linux中不存在真正的线程线程底层都是用进程来进行模拟的而之所以有线程是针对面向用户进行使用的而Linux中的线程也被叫做用户级线程所以在Linux中存在着一个线程库库中则封装着由OS将线程转换成轻量级进程的具体方法。所以就要由OS提供一个库将线程进行封装然后转换成用户习惯的使用方式为用户提供用户习惯的上层接口。 所以我们之前使用的pthread_t类型所表示的数字是什么呢 我们可以在编写代码时让代码拿到当前线程tid然后转换成16进制。 也可以通过指令去获取指定进程的LWP。 但是通过观察可以发现我们获取的tid和LWP并不一样。 而OS在代码刚开始运行时首先创建的是一个进程包括task_struct 、mm_struct 、页表。然后将磁盘中存储的代码加载到内存中然后进行运行。而我们在代码中创建线程但系统中并没有线程的概念只有轻量级进程的概念但是又需要让用户看到并对线程进行操作所以线程的创建管理等工作是在库中进行实现的库中对各种操作进行了封装处理。而库也是一个文件存在于OS中 而这个库就是一个动态库而想要执行该库就需要先将其加载到内存中然后将其映射到该进程的地址空间的共享区中所以创建线程、等待线程、终止线程等等工作都是在库中进行实现的所以库就要对用户创建的线程进行管理而管理的方式一如既往是先描述再组织。 而动态库就会如下图的方式一样被加载到进程的地址空间中而线程也有自己的线程控制块TCB而一般操作系统是不直接提供TCB数据结构的。 所以创建一个线程就创建一个tcb而每个tcb的起始地址就叫做线程的tid所以系统提供给用户的线程的地址就是tcb的起始地址通过该地址就能找到线程的所有属性信息。而tcb中就封装了该线程的LWP等信息。而库中不仅维护该线程所独立拥有的栈等还会维护相关的数据结构。而线程的栈结构和上下文数据都是自己私有的。主线程的栈就在如图所示的地方一旦开辟新的线程就会创建和分配新的栈结构所以每个线程都有独立的栈结构。虽然线程间的栈结构是独立的但其指向的都是同一进程的同一地址空间所以彼此之间还是能够相互访问的。 这个库是一个动态库也被叫做共享库共享库可以通过页表被映射到每一个进程地址空间当中所以不仅仅是一个进程整个系统的所有进程中的线程都由该库进行统一管理。 1.3__thread线程的局部存储 假设定义了一个全局变量int gvl __thread int gvl; 则可以对gvl的全局属性做修改让它变成每个线程所私有的 全局变量一般存在于进程地址空间的初始化数据区是所有线程所共享的也就是说一个线程对其进行修改所有的线程都能看到。如果这时在定义全局变量之前加上__thread就可以让该全局变量变成每个线程所私有的从而不会受其他线程的影响。而这就叫做线程的局部存储。在代码编译时OS会将该变量单独拆解出来存放到每一个线程的局部存储当中。注意局部存储只可以存储内置类型不能存储自定义类型。 1.4系统调用clone 在代码执行过程中pcb在执行线程相关的代码时也需要找到线程所对应的栈的位置clone就可以解决这个问题而clone就是pthread_create的底层实现。
http://www.hkea.cn/news/14479845/

相关文章:

  • 公司网站被百度转码了南昌建设局网站
  • 新手怎样自己做网站成都网站建设高端
  • 长沙知名网站沈阳男科医院排名前十
  • 商城网站建设效果网页图片加载慢解决方法
  • 网站是什么?网站建设按钮
  • 手表官方网站西安网站设计哪家好
  • 在云服务器上搭建网站wordpress的数据库配置文件
  • 河源市住房建设局网站wordpress 文章版本管理
  • 东莞做展示网站的公司如何把自己做的网站挂网上
  • ps中网站页面做多大的周村有做网站广告的吗
  • 网站 div多少钱翻译英文
  • php网站费用wordpress分类打开404
  • 最新远程网站建设服务本科自考怎么报名
  • 做电影网站需要多打了服务器wordpress旧版本
  • 网站设计的文案做网站的升级人
  • 贺岁币在建设银行那个网站预约商务网站建设与维护 ppt
  • 网站标签怎样修改最新推广平台
  • 可以做点赞的网站赚钱apache安装WordPress
  • 网站维护主要是做哪些西海岸建设局网站
  • 嘉兴网站制作怎么添加按钮在线网页代理免费版
  • 私人pk赛车网站怎么做福州开发企业网站
  • 央企网站建设意义wordpress 内容关联
  • 网站建设软件夫唯seo培训
  • 网站单页制作营销网站开发规划
  • 单网页网站如何做百度词条
  • 孵化基地网站怎么建设高校思政专题网站建设
  • 如何构建一个网站没有后台的网站怎么做排名
  • 自适应网站制作公司加速器免费加速
  • 怎么设置网站关键词微信二维码在线制作
  • 网站制作公司排名前十起名字大全免费