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

qq网页版登录官网登录入口网站建设商城网站价格

qq网页版登录官网登录入口网站,建设商城网站价格,莱西网站建设哪家好,汕尾网站开发线程运行控制 ​专栏内容#xff1a; 参天引擎内核架构 本专栏一起来聊聊参天引擎内核架构#xff0c;以及如何实现多机的数据库节点的多读多写#xff0c;与传统主备#xff0c;MPP的区别#xff0c;技术难点的分析#xff0c;数据元数据同步#xff0c;多主节点的情况…线程运行控制 ​专栏内容 参天引擎内核架构 本专栏一起来聊聊参天引擎内核架构以及如何实现多机的数据库节点的多读多写与传统主备MPP的区别技术难点的分析数据元数据同步多主节点的情况下对故障容灾的支持。 手写数据库toadb 本专栏主要介绍如何从零开发开发的步骤以及开发过程中的涉及的原理遇到的问题等让大家能跟上并且可以一起开发让每个需要的人成为参与者。 本专栏会定期更新对应的代码也会定期更新每个阶段的代码会打上tag方便阶段学习。 ​开源贡献 toadb开源库 个人主页我的主页 管理社区开源数据库 座右铭天行健君子以自强不息地势坤君子以厚德载物. 文章目录 线程运行控制前言概述线程控制方法概览暂停线程唤醒线程线程取消线程取消 API线程取消流程线程取消的原理 线程取消点取消点属性属性设置API参数说明 总结结尾 前言 现代的CPU都是多core处理器而且在intel处理器中每个core又可以多个processor形成了多任务并行处理的硬件架构在服务器端的处理器上架构又有一些不同传统的采用SMP也就是对称的多任务处理架构每个任务都可以对等的访问所有内存外设等而如今在ARM系列CPU上多采用NUMA架构它将CPU核分了几个组给每个组的CPU core分配了对应的内存和外设CPU访问对应的内存和外设时速度最优跨组访问时性能会降底一些。 随着硬件技术的持续发展它们对一般应用的性能优化能力越来越强同时对于服务器软件的开发提出更高要求要想达到极高的并发和性能就需要充分利用当前硬件架构的特点对它们进行压榨。那么我们的应用至少也是要采用多任务架构不管是多线程还是多进程的多任务架构才可以充分利用硬件的资源达到高效的处理能力。 当然多任务框架的采用不仅仅是多线程的执行需要对多任务下带来的问题进行处理如任务执行返回值获取任务间数据的传递任务执行次序的协调当然也不是任务越多处理越快要避免线程过多导致操作系统夯住也要防止任务空转过快导致CPU使用率飙高。 本专栏主要介绍使用多线程与多进程模型如何搭建多任务的应用框架同时对多任务下的数据通信数据同步任务控制以及CPU core与任务绑定等相关知识的分享让大家在实际开发中轻松构建自已的多任务程序。 概述 在多线程并发运行过程中总是会存在一些线程的调度管理让一些线程暂停唤醒线程取消运行等本文就来分享线程的控制方面的API以及使用方法。 线程控制方法概览 方法API描述暂停线程pthread_suspend_np pthread_suspend_all_np暂停一个指定的线程或所有线程唤醒线程pthread_resume_np pthread_resume_all_np唤醒一个指定线程或所有线程取消线程pthread_cancel让指定线程结束运行创建线程取消点pthread_testcancel线程只有在取消点时才会被取消线程取消属性设置pthread_setcancelstate pthread_setcanceltype取消属性的设置 暂停线程 #include pthread_np.hint pthread_suspend_np(pthread_t tid); void pthread_suspend_all_np(void); 让指定线程或者其它所有线程挂起这里调用者是不会被挂起的如果指定挂起自己则返回错误。 挂起的线程只有等待唤醒通知时才能继续运行。 唤醒线程 #include pthread_np.h int pthread_resume_np(pthread_t tid); void pthread_resume_all_np(void); 唤醒指定线程或者其它所有挂起的线程当指定的线程没有挂起时不产生任何动作。 当调用pthread_resume_all_np后会扫描所有活动的线程对于挂起的线程进行唤醒。 线程取消 线程取消会让被取消的线程结束运行线程退出。 线程取消 API #include pthread.h int pthread_cancel(pthread_t thread);参数指定线程的标识符取消指定线程这里也包括自已 API被调用以后会给被取消的线程发送取消请求取消请求是否被执行取决于该线程是否有取消点同时取消点属性设置为可以响应取消请求。 线程取消流程 线程处理取消请求的流程流程如下 接收处理清求弹出清理回调函数并执行是否有线程本地数据的销毁函数如果有时则执行线程退出 此时如果线程是可连接的则pthread_join需要被调用来回收资源。 线程取消的原理 线程取消的内部是通过信号实现发送请求实现是发送了一个信号这就很好理解取消点它只是一个信号中断处理点。 线程取消点 #include pthread.h void pthread_testcancel(void);调用此API可以在程序的调用位置创建取消点就是可以响应线程的取消有些代码段我们不希望被中断必须执行或者不执行那么就可以在此代码段的前后设置取消点。 一般线程中的取消点有以下几种 调用pthread_testcancel创建的取消点让线程产生等待条件API它们内部会有取消点如信号量等待等待其它线程结束的调用如pthread_join调用信号等待sigwait其它一些会阻塞线程的标准库API它们内部会有取消点如sleep, read/write/send/recv等在阻塞等待时此线程仍然可以被取消运行。 取消点属性 属性设置API #include pthread.h int pthread_setcancelstate(int state, int *oldstate); int pthread_setcanceltype(int type, int *oldtype);参数说明 state 取值 PTHREAD_CANCEL_ENABLE , 使能取消点也就是在此调用之后如果设置了取消点它们就可以响应取消请求线程默认情况下取消点是使能的PTHREAD_CANCEL_DISABLE 禁用取消点也就是在此调用之后如果设置了取消点它们不再响应取消请求; 当收到取消请求时它们会被阻塞直到使用取消点后。 type 取值 PTHREAD_CANCEL_DEFERRED, 取消请求会被延迟处理当收到取消请求时不会立即处理而是在下一个取消点时处理PTHREAD_CANCEL_ASYNCHRONOUS, 立即处理取消请求当然操作系统不能保证实时性 这两个API都是设置当前线程的取消点属性。为什么会有这两个函数呢 因为在我们程序中不仅用到了线程库函数还有标准C库函数还有其它而线程库的取消点我们可以自己设定而其它库函数的取消点只能通过这两个函数来控制是否需要启用。 总结 本文分享了关于线程运行、挂起、唤醒、取消运行等控制操作以及相关API体现出并发操作的复杂性对于挂起或取消运行要特别注意它们的时机避免产生意想不到的结果。 本文所涉及的代码已经上传到工程hatchCode, 在multipleThreads/example_06目录下 结尾 非常感谢大家的支持在浏览的同时别忘了留下您宝贵的评论如果觉得值得鼓励请点赞收藏我会更加努力 作者邮箱studysenllang.onaliyun.com 如有错误或者疏漏欢迎指出互相学习。
http://www.dnsts.com.cn/news/44575.html

相关文章:

  • 手机移动开发网站建设域名地址查询网
  • 网站怎么做描文本沙市网站建设
  • 网站做支付需要什么备案企业注册成立网址
  • 网站放友情链接违法吗数字营销沙盘大赛
  • 贵州建设职业技术学院网站系统搭建
  • 网站备案怎么做超链接个人网站建设计划表
  • 企业网站设计的要求wordpress for sae 4.3
  • 网站建设流程发布网站和网页制作热门国际新闻
  • 北京网站建站公微信小程序一起生活怎么注册
  • wordpress 手机站目录wordpress 简单
  • 肖鸿昌建筑网站网站开发流程6个阶段
  • 网站开发验收报告网站建设个人信息英文翻译
  • 3分钟搞定网站seo优化外链建设wordpress 查看密码
  • 51网站空间相册在哪里网站图片不轮播
  • 网站开发设计师薪资网站是做推广好还是优化好
  • 深圳网站优化多少钱怎么做网站埋点
  • 影视网站建设源码最新网页游戏开服时间表
  • 用ssh做的网站自助网站建设工具
  • 百度收录网站名滨州网站seo
  • 网站模式下做淘宝客漂亮logo图片
  • 动漫网站设计模板国际时事新闻最新消息
  • 中国建设会计学会网站怎么做微拍网站
  • 如何给一个网站做优化班级网站建设的范围
  • 网站注册便宜php房产中介网站源码
  • 网页图片显示不出来企业网站优化公司哪家好
  • 做微网站需要什么国内精美网站
  • 提高网站的访问速度怎么制作图片二维码
  • 网上做网站资金大概多少汕尾东莞网站建设
  • 吉安做网站的公司东营推广营销公司
  • 网站asp.net安装做跨境电商网站有哪些