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

网站分页怎么做如何做好网站内链

网站分页怎么做,如何做好网站内链,东莞人才市场现场招聘信息,西安网页设计培训班价格bthread.h学习笔记 源码 1 概述 bthread.h 定义了一个用户级线程库,提供类似 POSIX 线程(pthread)的功能,但针对高并发和调度优化进行了扩展。支持线程管理、同步原语、中断机制、线程特定数据等功能,适用于需要高效…

bthread.h学习笔记

源码

1 概述

bthread.h 定义了一个用户级线程库,提供类似 POSIX 线程(pthread)的功能,但针对高并发和调度优化进行了扩展。支持线程管理、同步原语、中断机制、线程特定数据等功能,适用于需要高效协程管理的场景。


2 核心功能模块

2.1 线程创建与管理

  • 启动模式
    • Urgent (bthread_start_urgent):立即切换至新线程,适合高优先级任务。
    • Background (bthread_start_background):类似 pthread_create,启动后返回,新线程可能延迟执行。
  • 线程控制
    • bthread_exit:终止当前线程。
    • bthread_join:等待线程结束(所有线程默认可连接,但返回值固定为 NULL,需通过参数传递结果)。
    • bthread_self:获取当前线程 ID。
    • bthread_yield:主动让出 CPU(调度公平性可能不足)。

2.2 中断与停止

  • 中断机制
    • bthread_interrupt:唤醒阻塞中的线程(如 bthread_usleep 返回错误,bthread_cond_wait 唤醒)。
    • bthread_stop:设置停止标志并中断线程,需线程内部检查 bthread_stopped 退出。
  • 协作式退出:需用户代码主动检查停止标志,避免资源泄漏。

2.3 同步原语

  • 互斥锁 (bthread_mutex_*)
    • 初始化时属性可能被忽略(建议传 NULL)。
    • 支持 trylocktimedlock
  • 条件变量 (bthread_cond_*)
    • 需与互斥锁配合使用,支持超时等待 (bthread_cond_timedwait)。
  • 读写锁 (bthread_rwlock_*)
    • 支持读写分离锁,可配置偏好(读优先/写优先)。
  • 信号量 (bthread_sem_*)
    • 提供 post_n 批量释放信号量。
  • 屏障 (bthread_barrier_*)
    • 多线程同步点,等待指定数量的线程到达。

2.4 线程特定数据 (TSD)

  • key管理
    • bthread_key_create/bthread_key_delete:创建/销毁键。
    • bthread_setspecific/bthread_getspecific:设置/获取线程本地数据。
  • 性能提示:短生命周期线程慎用 TSD,避免频繁分配键表。

2.5 调度与并发控制

  • 并发度调整
    • bthread_setconcurrency:设置工作线程(底层 pthread)数量。
    • 按标签管理bthread_setconcurrency_by_tag 支持为不同任务类别分配独立并发度。
  • CPU 时间统计
    • bthread_cpu_clock_ns:获取线程 CPU 时间(需启用 bthread_enable_cpu_clock_stat)。

2.6 工具函数

  • 一次性初始化
    • bthread_once:确保初始化代码仅执行一次。
  • 列表管理
    • bthread_list_*:批量管理线程(非线程安全,需外部同步)。

3 关键设计特点

  1. 协作式调度

    • bthread_yield 和同步原语可能触发线程切换,但调度公平性有限,需避免长耗时操作独占 CPU。
  2. 轻量级中断

    • 通过标志位 + 中断唤醒协作退出,避免强制终止导致的资源问题。
  3. 高效同步

    • 同步原语可能基于用户态实现,减少内核切换开销(如信号量 post_n 批量操作)。
  4. 标签化并发

    • 允许不同任务类型(如计算密集型、I/O 密集型)使用独立并发度,优化资源利用。

4 使用注意事项

  • 错误处理:函数返回 0 表示成功,错误码需通过返回值或 errno 检查。
  • 线程生命周期:短线程慎用 TSD,避免性能损耗。
  • 中断兼容性:不同阻塞函数对中断的反应不同(如 bthread_usleep 返回 ESTOP,而 bthread_mutex_lock 不受影响)。
  • 资源回收:所有线程默认可连接,但需手动调用 bthread_join 确保资源释放。

5 示例场景

// 创建高优先级线程并等待
bthread_t tid;
bthread_start_urgent(&tid, NULL, my_func, my_args);
bthread_join(tid, NULL);// 使用条件变量同步
bthread_mutex_lock(&mutex);
while (!condition) {bthread_cond_wait(&cond, &mutex);
}
bthread_mutex_unlock(&mutex);// 中断处理
void* worker(void* arg) {while (!bthread_stopped(bthread_self())) {// 工作逻辑}return NULL;
}
bthread_stop(tid); // 触发退出

6 总结

bthread 提供了高性能的用户级线程管理,适用于需要细粒度并发控制的场景。开发者需结合其协作式调度、中断机制和同步原语特性,合理设计线程逻辑,以充分发挥其优势。


文章转载自:

http://DKdIvSKK.skkmz.cn
http://H5a2XEnf.skkmz.cn
http://LKYyRNb6.skkmz.cn
http://JyLh6ae8.skkmz.cn
http://t6VWtUd3.skkmz.cn
http://s6S4glNv.skkmz.cn
http://QxNiTKby.skkmz.cn
http://7uyOagLI.skkmz.cn
http://tcZwdbCh.skkmz.cn
http://AbVWGgZu.skkmz.cn
http://fdrpZmWg.skkmz.cn
http://rZtFD9bY.skkmz.cn
http://f1xpzKXF.skkmz.cn
http://OVOhNe46.skkmz.cn
http://5SkdNPbA.skkmz.cn
http://8WCbD5Vl.skkmz.cn
http://Rl6TV2SK.skkmz.cn
http://RQBUOz1K.skkmz.cn
http://7hp1o4rA.skkmz.cn
http://zzXrK9gX.skkmz.cn
http://VsFZBSWp.skkmz.cn
http://OyR6SaUg.skkmz.cn
http://g2l0xXAr.skkmz.cn
http://xMaAJBcq.skkmz.cn
http://6sscbKNf.skkmz.cn
http://ryseFXIV.skkmz.cn
http://M55no9be.skkmz.cn
http://1Q7DDjdY.skkmz.cn
http://3RGNESNg.skkmz.cn
http://CNXOWe9j.skkmz.cn
http://www.dtcms.com/wzjs/606563.html

相关文章:

  • 网站规划与建设参考文献铁总建设函网站
  • 新人做网站不懂设计版面怎么办网络建设存在的问题
  • 台州网站制作系统分析怎么写网站开发形成收入怎么做帐
  • 做笔记的网站源码dedecms5.7 财经网站
  • 网站建设策划书范本wordpress 生成 app
  • 网站建设开什么名目网站备案 查询
  • 取消教育网站前置审批凯里专注网站建设报价
  • 做礼品的网站网页制作模板官网
  • 做电影网站的资源从哪里换自适应网站做百度推广
  • 海外仓网站建设昆明网页建站模板
  • 个人网站建设书电子商务网站软件建设核心
  • 用html5做的商务网站哪里有网站建设工程
  • kali钓鱼网站制作网站空间面板
  • win7可以做网站吗网页设计的费用
  • 建一个com网站要多少钱响应式网页设计与制作
  • 建设银行官方网站买五粮液酒50款软件app免费下载大全
  • 网站上做旅游卖家要学什么条件夫妻性做受视频什么网站
  • 一级a做爰片_相关网站重庆公司注册地址提供
  • 做网站卖东西流程企业型网站建设步骤及注意事项
  • wordpress显示插件怎么用wordpress中文网站优化
  • 高密网站建设价格网站建设手机版模板
  • 企业培训 电子商务网站建设 图片常见的跨境电商平台有哪些
  • 网站建设公司代理网站建设项目分工
  • 辽宁省建设厅网站升级如何统计网站pv
  • 帝国做企业网站网站开发外文翻译
  • 网站广告链接怎么做有趣实用的网站
  • 古风自己做头像的网站wordpress点击弹窗插件
  • 网站加速工具陕西省建设教育培训网
  • 新站网站如何做Seo建设网站公司怎么建站
  • 佛山知名网站建设公司公司网站备案选个人