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

怎么给领导做网站分析搜索引擎优化的目标

怎么给领导做网站分析,搜索引擎优化的目标,注册农村电商需要多少钱,百度网站的优缺点实现思路 暂停信号:通过 ManualResetEventSlim 通知读取线程暂停。 暂停确认:读取线程收到暂停信号后,发送确认信号。 原子性控制:确保写入操作执行期间,读取线程处于完全暂停状态。 恢复机制:写入完成后…

实现思路

  1. 暂停信号通过 ManualResetEventSlim 通知读取线程暂停

  2. 暂停确认:读取线程收到暂停信号后,发送确认信号。

  3. 原子性控制:确保写入操作执行期间,读取线程处于完全暂停状态。

  4. 恢复机制写入完成后恢复读取线程。

代码实现

using System;
using System.Threading;public class ReadWriteController
{// 控制读取线程暂停和恢复的信号private readonly ManualResetEventSlim _pauseRequest = new ManualResetEventSlim(false);// 读取线程确认已暂停的信号private readonly ManualResetEventSlim _pausedConfirmed = new ManualResetEventSlim(false);// 停止读取线程的标志private volatile bool _stopRequested = false;// 读取线程的循环任务public void ReadLoop(){while (!_stopRequested){// 检查是否需要暂停if (_pauseRequest.IsSet){// 确认已暂停,并等待恢复信号_pausedConfirmed.Set();_pauseRequest.Wait();_pausedConfirmed.Reset();}// 模拟读取操作(此处可替换为实际业务逻辑)Console.WriteLine($"[Read] {DateTime.Now:HH:mm:ss.fff} - Reading data...");Thread.Sleep(1000); // 模拟耗时操作}Console.WriteLine("[Read] Thread stopped.");}// 写入操作的外部触发方法public void WriteCommand(){// 发送暂停请求_pauseRequest.Set();Console.WriteLine("[Write] Pause request sent.");// 等待读取线程确认暂停_pausedConfirmed.Wait();Console.WriteLine("[Write] Read thread paused. Starting write operation...");// 模拟写入操作(此处可替换为实际业务逻辑)Thread.Sleep(500); // 模拟耗时操作Console.WriteLine($"[Write] {DateTime.Now:HH:mm:ss.fff} - Write completed.");// 恢复读取线程_pauseRequest.Reset();Console.WriteLine("[Write] Read thread resumed.");}// 停止所有线程public void Stop(){_stopRequested = true;_pauseRequest.Set(); // 确保读取线程退出等待}
}// 使用示例
public class Program
{public static void Main(){var controller = new ReadWriteController();// 启动读取线程var readThread = new Thread(controller.ReadLoop);readThread.Start();// 模拟写入操作(每隔3秒触发一次)for (int i = 0; i < 3; i++){Thread.Sleep(3000);controller.WriteCommand();}// 停止所有线程controller.Stop();readThread.Join();Console.WriteLine("Main thread exited.");}
}

代码解析

1. 控制信号定义
  • _pauseRequest:写入线程通过 Set() 发送暂停请求,读取线程通过 Wait() 阻塞自身。

  • _pausedConfirmed:读取线程暂停后通过 Set() 通知写入线程,确保写入操作安全执行。

2. 读取线程逻辑
while (!_stopRequested)
{if (_pauseRequest.IsSet){_pausedConfirmed.Set();    // 确认已暂停_pauseRequest.Wait();      // 等待恢复信号_pausedConfirmed.Reset();  // 重置确认信号}// 执行读取操作...
}
  • 每次循环检查暂停请求。

  • 若收到暂停信号,立即确认并阻塞自身,直到写入完成。

3. 写入线程逻辑
public void WriteCommand()
{_pauseRequest.Set();          // 发送暂停请求_pausedConfirmed.Wait();      // 等待读取线程确认暂停// 执行写入操作..._pauseRequest.Reset();        // 恢复读取线程
}
  • 写入前确保读取线程已完全暂停。

  • 写入完成后恢复读取线程。

运行效果

[Read] 14:25:03.456 - Reading data...
[Read] 14:25:04.457 - Reading data...
[Write] Pause request sent.
[Write] Read thread paused. Starting write operation...
[Write] 14:25:05.457 - Write completed.
[Write] Read thread resumed.
[Read] 14:25:05.958 - Reading data...
[Read] 14:25:06.959 - Reading data...
...
Main thread exited.

方案特点

  1. 严格同步通过双重信号机制确保写入操作插入的安全性

  2. 无竞态条件:使用 ManualResetEventSlim 避免多线程竞争。

  3. 可控停止:通过 _stopRequested 安全终止线程。

http://www.dtcms.com/wzjs/518589.html

相关文章:

  • 做婚恋交友网站模板温州seo优化
  • 个人博客html代码seo站内优化培训
  • 一个网站同时做竞价和seoebay欧洲站网址
  • 江门市专业做网站公司重庆网站排名推广
  • 品牌网官网商丘 峰少 seo博客
  • 国外 家具 网站模板长沙网站seo排名
  • 学校网站群建设方案安康地seo
  • 大专毕业设计网站灰色词排名推广
  • 什么网站做简历免费下载郑州网络营销顾问
  • 公司首页模板深圳网站seo推广
  • 玉林市城市建设投资有限公司网站2021全国大学生营销大赛
  • 自己怎么做百度网站空间谷歌竞价排名推广公司
  • 云浮网站网站建设seo的优化原理
  • 怎么制作一个简单的网站谷歌地图下载
  • 荣昌集团网站建设外贸网站推广
  • 深远互动 网站建设磁力链接搜索引擎2021
  • 外贸先做网站还是开公司搜索引擎查询
  • 建设购物网站需要多少钱看今天的新闻
  • 网站建设的行业客户个人网页免费域名注册入口
  • 简述电子政务系统网站建设的基本过程网络推广优化
  • 网站建设 网页2023年8月份新冠症状
  • 暴雪游戏排行榜前十名seo策略是什么意思
  • 山东外贸网站建设是什么seo策略什么意思
  • 安徽网站开发武汉疫情最新动态
  • 网站开发未按合同约定工期完工网站软文推广范文
  • 做图书网站赚钱吗产品seo是什么意思
  • 织梦dedecms大气微电影网站模板crm系统网站
  • 免费做公司手机网站网站收录查询系统
  • 南充建设企业网站网站怎么找
  • wordpress菜单相对地址搜索引擎优化公司