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

如何做彩票网站的教程资阳市建设局网站

如何做彩票网站的教程,资阳市建设局网站,成都新线加网站建设,自己有网站想制作个程序[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delph…[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi、XCode、Eclipse、C Builder 技能种类: 逆向 驱动 磁盘 文件 研发领域: Windows应用软件安全/Windows系统内核安全/Windows系统磁盘数据安全/macOS应用软件安全 项目经历: 磁盘性能优化/文件系统数据恢复/文件信息采集/敏感文件监测跟踪/网络安全检测[序言] 这次主要是探究多线程的运行状态, 多线程的一个显著的特征就是在不干预的情况下, 默认运行是无顺序的. 为什么会造成这样情况发生呢 这就是本篇文章的内容.[什么是”无顺序“有没有更形象的描述]1 尝试用for循环依次创建10个线程, 分别是0号线程, 1号线程, 2号线程, 3号线程...依次类推到10号线程.2 这10个线程都是依次启动, 都是有顺序的, 也就是说 谁先创建, 谁先运行. 那就意味着, 0号线程 比 1号线程 先运行, 然后 1号线程 比 2号线程 先运行...依次类推.3 这10个线程创建并启动运行之后, 都会去尝试更新WinForm上的一个label控件 按照上面的3个逻辑步骤尝试去写代码, 编译, 运行. 你发现一个奇怪的现象, 最先创建的0号线程, 并没有能占在第一位去更新label控件. 就有点像平时我们参加10人短跑竞赛的情况, 我虽然第一个起跑了, 但却拿不到的第一名.[为什么会出现这样的情况呢0号线程竟然没法抢先第一位更新label控件, 也就是说0号线最终不是第一名呀] 其实这个是跟Windows操作系统的线程管理器有关系. 一般准确来说称呼为线程调度器. 这个线程调度器是根据自身内部的算法, 来决定Windows内部中每一个线程的运行效率以及优先级. 重新回到上面的例子如果0号线程没有能抢先第一个更新label控件而是让给了3号线程抢先. 那就意味着这是由线程调度器决定的, 它会根据当前Windows系统内部的所有因素, 通过算法评估, 最终决定让3号线程来抢先第一个更新labelk控件.[看到这里, 大家可能会有疑问: Windows操作系统为什么要搞这个线程调度器] 这个问题问得相当好. 根本原因就在于CPU身上. 大家可以把CPU当作一个人, 然后把10个线程当作是给这个人要做的10个任务. 然后线程调度器就是人的大脑. 当大脑在接收到要完成10个任务的时候, 大脑就会考虑到底要先完成哪个任务才能提升工作效率当经过一番思考之后(这里思考就是指算法了), 决定最终先让第3个任务先完成. 通过我这样的描述, 相信大家都懂了吧. 既然CPU是一个人, 那肯定不能同时一次做完10个任务, 必须要分开做. 那么正常人可能会先做第1个任务. 这里关键核心就来了, CPU的大脑(指算法)是很聪明的聪明人在做事情之前, 都会分析, 都会评估, 选择最优的工作方式来完成这10个任务, 所以这就是所谓评估算法, 也就是调度算法.[理解我上面所说的内容, 那么大家可以按照下面的源码尝试编写个程序运行看看]1 启动Visual Studio Enterprise 2022版本2 建立一个C# Windows窗体应用(.NET Framework). 3 然后在窗体上放上一个按钮和一个Lable控件4 用for循环依次创建10个线程. 完成上面的步骤之后, 模仿下面的代码, 抄写到你建立的项目中. public partial class Form_Main : Form{private ConcurrentQueueAutoResetEvent mpr_cq_ThreadEvent new ConcurrentQueueAutoResetEvent();public class Thread_Run{public int mpr_int_ThreadIndex;private Actionint mpr_action_UpdateWaiteInfo;public Thread_Run(Actionint action_param_UpdateWaiteInfo, int int_param_ThreadIndex){mpr_action_UpdateWaiteInfo action_param_UpdateWaiteInfo;mpr_int_ThreadIndex int_param_ThreadIndex;}public void mpu_pro_StartThread(){Thread class_Thread new Thread(Thread_Exe);class_Thread.Start();}private void Thread_Exe(){//调用委托方法来更新UImpr_action_UpdateWaiteInfo?.Invoke(mpr_int_ThreadIndex);}}// End Thread_Run()public Form_Main(){InitializeComponent();}public void mpu_pro_UpdateWaiteInfo(int int_param_ThreadIndex){if (InvokeRequired){this.Invoke((MethodInvoker)delegate {lb_WaitInfo.Text (Environment.NewLine string.Format({0} 号线程已跑到终点., int_param_ThreadIndex));});}}private void Bn_StartThread_Click(object sender, EventArgs e){// 启动10个线程for (int int_Index 0; int_Index 10; int_Index){var var_ThreadEvent new AutoResetEvent(false);mpr_cq_ThreadEvent.Enqueue(var_ThreadEvent);Thread_Run class_ThreadRun new Thread_Run(mpu_pro_UpdateWaiteInfo, int_Index);class_ThreadRun.mpu_pro_StartThread();}}} [总结] 这个”线程的无顺序性“是非常重要的理论, 一定要明白这个特性. 只有了解了这个特性, 在日后的多线程开发中, 比如 同步, 异步, 竞争, 等待, 并发, 才能有更好的理解. 大家如果阅读完这篇文章, 有更多疑问可以留言, 有更好的建议和想法,也可以留下你的评论.[程序界面演示]
http://www.huolong8.cn/news/379845/

相关文章:

  • 如何做搞笑的视频视频网站网站源码怎么绑定域名
  • 淘宝自己建的网站网站页面不更新
  • linux上搭建网站濮阳市住房和城乡建设局网站
  • 网站备案 抽查设计购物网站的意义
  • wordpress 代做网站软件下载网站制作
  • 小企业网站建设在哪里电子产品展示网站模板
  • 支付网站认证费用怎么做分录内部网站链接怎么做
  • 网站推广和优化的原因网络营销500亿网站建设
  • 今天31个省新增最新消息网站建设优化佛山
  • 简单php企业网站源码南宁网站忧化
  • 有什么牌子网站是响应式建一个网站一般要多少钱
  • 做求职网站推广搜索引擎
  • 手机网站静态模板网站流量分析的指标有哪些
  • 郑州专业做淘宝网站建设服务类产品
  • 济南网站开发推广wordpress侧边栏位置
  • 中山网站建设文化报价wordpress 表情拉长
  • 影视传媒公司网站php源码大连中小企业网络营销
  • 济南网站建站推广360优化大师
  • 比较好的网站空间falsh网站模板下载
  • asp.net手机网站开发教程局域网中做网站
  • 集团高端网站蓝色的网站
  • 做课件可赚钱的网站企业服务公司是干什么的
  • 二手购物网站策划书电白区住房和城乡建设部门户网站
  • 比较好的设计网站有哪些怎么做网站加盟
  • 网站运营分析青岛金桥建设机械有限公司网站
  • 内蒙古微网站建设吉林省建设厅网站
  • 广西网络网站建设佛山整合营销
  • 家电企业网站推广方案网站建设与栏目设置
  • seo 网站地图优化iis7.5 添加网站
  • 网站建设推广软文案例wordpress 列表函数