96SEO 2026-02-19 23:42 14
多线程会共享例如全局变量等资源我们把会被多个执行流访问的资源称为临界资源我们是通过代码访问临界资源的而我们访问临界资源的那部分代码称为临界区。

GetThreadName();Threadstd::string
name1);t1.Start();t1.Join();return
但是当我们启动多个线程同时抢票时num就是临界资源使用num的那部分代码就是临界区
GetThreadName();Threadstd::string
GetThreadName();Threadstd::string
GetThreadName();Threadstd::string
GetThreadName();Threadstd::string
name4);t1.Start();t2.Start();t3.Start();t4.Start();t1.Join();t2.Join();t3.Join();t4.Join();return
可以看到出现了0和负数的票数这是因为当票数只剩1时有多个执行流在同一时间通过了if判断使得能继续进行减票操作。
vs下自减操作的反汇编分为三步先从内存拿数据再把数据减1最后把数据拷贝到内存
多个执行流同时访问临界资源例如自减操作由于--操作不是原子性的我们认为一条汇编指令是原子性的是不会被中断的。
但--操作转为汇编指令后需要多条指令才能完成当--操作执行到一半切换到其他线程会导致数据不一致的问题。
这种情况下需要通过锁把临界区保护起来每次只让一个执行流访问临界资源避免数据不一致问题。
互斥任何时刻互斥保证有且只有一个执行流进入临界区访问临界资源通常对临界资源起保护作用。
原子性不会被任何调度机制打断的操作该操作只有两态要么完成要么未完成。
PTHREAD_MUTEX_INITIALIZER用宏初始化。
如果定义一个局部锁要使用pthread_mutex_init方法创建参数attr设为nullptr
{while(true){pthread_mutex_lock(mutex);
num);num--;pthread_mutex_unlock(mutex);
//解锁}else{pthread_mutex_unlock(mutex);
GetThreadName();Threadstd::string
GetThreadName();Threadstd::string
GetThreadName();Threadstd::string
GetThreadName();Threadstd::string
name4);t1.Start();t2.Start();t3.Start();t4.Start();t1.Join();t2.Join();t3.Join();t4.Join();return
线程安全多个线程并发同一段代码时不会出现不同的结果。
常见对全局变量或者静态变量进行操作
重入同一个函数被不同的执行流调用当前一个流程还没有执行完就有其他的执行流再次进入我们称之为重入。
一个函数在重入的情况下运行结果不会出现任何不同或者任何问题则该函数被称为可重入函数否则是不可重入函数。
1.调用了malloc/free函数因为malloc函数是用全局链表来管理堆的
2.调用了标准I/O库函数标准I/O库的很多实现都以不可重入的方式使用全局数据结构
3.不调用不可重入函数不返回静态或全局数据所有数据都有函数的调用者提供
2.函数是不可重入的那就不能由多个线程使用有可能引发线程安全问题
3.如果一个函数中有全局变量那么这个函数既不是线程安全也不是可重入的。
3.如果将对临界资源的访问加上锁则这个函数是线程安全的但如果这个重入函数若锁还未释放则会产生
死锁是指在一组进程中的各个进程均占有不会释放的资源但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。
2.请求与保持条件一个执行流因请求资源而阻塞时对已获得的资源保持不放
答案是会的当一个线程申请完一个锁访问完临界资源后接下来该释放锁了但是代码却写成了加锁这就会导致死锁问题。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback