多线程软件不响应处理

多线程的问题,基本上由于写法不规范造成的问题,从而影响软件正常运行,或时不时出现软件不响应,但是其它CPU,内存保存不变的情况.

出现这样的情况,多半是软件运行时死锁或多个线程相互等待,从而引起的软件未响应的情况发生.

解决办法:

1.while,do while循环增加延时时间Sleep,别小看了这个Sleep用的好,瞬间可以软件运行的软件起死回生.

2.事件的等待,增加超时Sleep处理.

3.写作代码的规范,尽可能的一个小流程包含一个动作,多个动作流程需要多步分步执行,避免一个步骤中出现多个执行条件判断,等待,用最简单 的逻辑解决比较复杂的问题.

4.if else配对出现,不要单独使用if,多个条件时,尽量使用switch处理,if elseif else 尽可能要匹配,三者缺一不可.

5.互斥事件,安全锁,临街区域的使用,退出是必须释放资源,防止死锁导致软件未响应.

6.UI线程一定要增加消息响应处理,避免循环处理时候,界面消息不响应,从而ui卡死不响应.,尤其是在按钮中运行while循环时候,增加如下消息处理,界面才不会卡死,不响应,即使写一个线程也要增加Sleep延时.

		MSG msg;while(PeekMessage(&msg,0,0,0,PM_REMOVE)){TranslateMessage(&msg);DispatchMessage(&msg);}

7.work线程的处理,尽可能不要出现死等,狂写日志的代码,打印日志代码也是非常占内存和资源的,必要时可以按照时间间隔打印日志信息.

8.内存泄漏的处理,句柄的关闭,连接的断开释放资源,包括不限于字体,时间,socket连接,killtimmer等

9流程图的规划,尽可能每一步都独立,功能简单,不要一个步骤处理多个任务.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/36031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重庆交通大学24计算机考研数据速览,专硕第二年招生,复试线321分!

重庆交通大学(Chongqing Jiaotong University,CQJTU),是由重庆市人民政府和中华人民共和国交通运输部共建的一所交通特色、以工为主的多科性大学,入选“中西部高校基础能力建设工程”、“卓越工程师教育培养计划”、国…

企业级堡垒机JumpServer

文章目录 JumpServer是什么生产应用场景 Docker安装JumpServer1.Docker安装2.MySQL服务安装3.Redis服务安装4.key生成5.JumpServer安装6.登录验证 系统设置邮箱服务器用户和用户组创建系统审计员资产管理用户创建资产节点资产授权查看用户的资产监控仪表盘 命令过滤器创建命令过…

Model3C芯片方案--86彩屏中控面板Modbus协议说明

一、概述 Model3C芯片是一款基于RISC-V的高性能、国产自主、工业级高清显示与智能控制MCU,配备强大的2D图形加速处理器、PNG/JPEG解码引擎,并支持工业宽温。基于Model3C芯片的86彩屏中控面板,通过集成Modbus协议,实现了与多种控制…

前端存储都有哪些

cookie 、sessionStorage、localStorange、http缓存 、indexDB cookie 由服务器设置,在客户端存储,然后每次发起同源请求时,发送给服务器端。cookie最多能存储4K数据,它的生存时间由expires属性指定,并且cookie只能被…

涨点超强!图像特征提取最新方法!性能效率快到飞起

在图像处理领域,有一个非常关键的步骤:图像特征提取。它能给我们提供一种高效、准确且灵活的方式来描述和分析图像内容。 通过降低图像数据的维度,去除冗余和噪声信息,图像特征提取不但简化了后续处理过程,还能提高算…

ffmpeg使用mjpeg把yuvj420p编码为jpg图像

version #define LIBAVUTIL_VERSION_MAJOR 58 #define LIBAVUTIL_VERSION_MINOR 12 #define LIBAVUTIL_VERSION_MICRO 100 note 1. 通过*.jpg推测时,out_fmt为image2,打开*.jpg文件时,in_fmt为image2 但是out_fmt为image2时&#xff…

web项目打包成可以离线跑的exe软件

目录 引言打开PyCharm安装依赖创建 Web 应用运行应用程序打包成可执行文件结语注意事项 引言 在开发桌面应用程序时,我们经常需要将网页集成到应用程序中。Python 提供了多种方法来实现这一目标,其中 pywebview 是一个轻量级的库,它允许我们…

滑动窗口算法——部分OJ题详解

目录 关于滑动窗口 部分OJ题详解 209.长度最小的子数组 3.无重复字符的最长字串 1004.最大连续1的个数Ⅲ 1658.将x减到0的最小操作数 904.水果成篮 438.找到字符串中所有字母异位词 30.串联所有单词的子串 76.最小覆盖子串 关于滑动窗口 其实滑动窗口也是通过双指针…

存储引擎MyISAM和InnoDB

目录 一、存储引擎概述 1.存储引擎概念 2.存储引擎分类 3.选择存储引擎的原则 二、InnoDB 存储引擎 三、MyISAM 存储引擎 四、实验操作 一、存储引擎概述 1.存储引擎概念 数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据库引擎进行创建&#x…

Spring Boot中如何处理异步任务

Spring Boot中如何处理异步任务 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在Spring Boot应用中如何处理异步任务,以提升系统的性…

Nuxt 的异步数据处理(八)

Nuxt.js 扩展了 Vue.js,增加了一个叫 asyncData 的方法,使得我们可以在设置组件的数据之前能异步获取或处理数据。 asyncData 方法 Nuxt.js 提供了几种不同的方法来使用 asyncData 方法,你可以选择自己熟悉的一种来用: 返回一个…

CMS垃圾回收过程中重新标记阶段为什么不能清理浮动垃圾

因为在并发标记时,因为是 GC 和用户线程是并发执行的,可能导致一部分已经标记为 从 GC Roots 不可达 的对象,若该对象在用户线程的修改下又可达了,Remark 的作用就是将这部分对象又标记为 可达对象(漏标)。…

Double 4 VR虚拟情景智能互动系统在小语种专业课堂上的应用

随着科技的进步,越来越多的教育机构开始尝试使用虚拟现实技术来提高教学效果。Double 4 VR虚拟情景智能互动系统就是这样一款能够为小语种专业课堂带来革新性体验的教学工具。 一、模拟真实环境,增强学习体验 系统通过高度仿真的虚拟环境,为学…

Git(涵盖GitHub\Gitee码云\GitLab)

Git(涵盖GitHub\Gitee码云\GitLab) 文章目录 Git(涵盖GitHub\Gitee码云\GitLab)课程介绍Git概述官网介绍版本控制介绍两种版本控制工具集中式版本控制工具分布式版本控制工具 Git工作机制代码托管中心 Git安装和客户端的使用Git常用命令设置用户签名初始化本地库查看本地库状态…

C++——string类用法指南

一、前言 在C语言中,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍…

性能飞跃:深度优化IntelliJ IDEA的实战指南

性能飞跃:深度优化IntelliJ IDEA的实战指南 IntelliJ IDEA,作为Java开发者的首选IDE,以其强大的功能和智能化的代码辅助而闻名。然而,随着项目规模的增长,IDE的性能可能会成为瓶颈。本文将提供一份详尽的优化指南&…

C++编译时引入json/nlohmann文件报错

报错信息: In file included from /home/chenlang/catkin_ws/src/leanrning_communication/src/mysql/../utils/data.h:14:0,from /home/chenlang/catkin_ws/src/leanrning_communication/src/mysql/MyRobotDb.h:32,from /home/chenlang/catkin_ws/src/leanrning_communicatio…

学校选用SOLIDWORKS教育版进行授课的理由

在当代的工程与技术教育领域,计算机辅助设计软件(CAD)已经变成了一个不可缺少的教学辅助工具。SOLIDWORKS作为一个功能齐全且用户友好的CAD软件,其教育版本在学校教学环境中受到了广泛的欢迎。本文将对学校教学中选用SOLIDWORKS版…

eclipse基础工程配置( tomcat配置JRE环境)

文章目录 I eclipse1.1 工程配置1.2 编译工程1.3 添加 JRE for the project build pathII tomcat配置JRE环境2.1 Eclipse编辑tomcat运行环境(Mac版本)2.2 Eclipse编辑tomcat运行环境(windows版本)2.3 通过tomcat7W.exe配置运行环境(windows系统)I eclipse 1.1 工程配置 …

【motan rpc 懒加载】异常

文章目录 升级版本解决问题我使用的有问题的版本配置懒加载错误的版本配置了懒加载 但是不生效 lazyInit"true" 启动不是懒加载 会报错一次官方回复 升级版本解决问题 <version.motan>1.2.1</version.motan><dependency><groupId>com.weibo…