前言
在我们业务开发过程中,总会遇到这种情况,就是插入了多条重复数据,或者在更新数据的时候出现了数据错乱,在执行多次的时候,结果总是不一样的,与我们的预期不符。我们引入一个概念叫做“幂等”,幂等其实是一个数学概念,在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同,这也是我们所期望的,那么下面我们详细介绍一下几种实现幂等的方式。
2025年10月14日
在我们业务开发过程中,总会遇到这种情况,就是插入了多条重复数据,或者在更新数据的时候出现了数据错乱,在执行多次的时候,结果总是不一样的,与我们的预期不符。我们引入一个概念叫做“幂等”,幂等其实是一个数学概念,在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同,这也是我们所期望的,那么下面我们详细介绍一下几种实现幂等的方式。
2025年10月14日
在Tkinter中,所有的UI操作都在主线程中进行。如果在主线程中直接运行耗时任务(如文件读写、网络请求、大量计算),界面会卡住,无法响应用户操作。
为了解决这个问题,我们需要使用 多线程 或 异步任务
2025年10月14日
在计算机的发展早期,CPU 一次只能干一件事,比如你开个文档,就只能编辑文档,不能同时听音乐。后来,随着硬件性能的提升和人类对效率的追求,我们希望计算机能“同时”做多件事——这就引出了并发(Concurrent) 和 并行(Parallel) 的概念。
2025年10月14日
在C#中,创建多线程有两种常用的方式:
1. 使用Thread类
Thread类是C#中处理线程的基础类,通过实例化Thread类对象并将其传递给ThreadStart委托,再调用Start方法启动线程。例如:
2025年10月14日
上图是Android中多线程实现的主要方式,和线程的控制流程。
1.最基础的方式就是在需要的时候new一个Thread,但是这种方式不利于线程的管理,容易引起内存泄漏。 试想一下,你在Activity中new一个Thread去处理耗时任务,并且在任务结束后通过Handler切换到UI线程上去操作UI。这时候你的Activity已经被销毁,因为Thread还在运行,所以他并不会被销毁,此外Thread中还持有Handler的引用,这时候必将会引发内存泄漏和crash。
2025年10月14日
在 C# 中,异步非阻塞和多线程都是处理并发任务的方式,但它们的设计理念、实现机制和适用场景有本质区别。下面从核心原理、资源占用、适用场景等方面详细对比:
1. 核心原理
多线程(Multi-threading)多线程通过创建多个线程实现并发,每个线程独立执行任务。操作系统会在多个线程间进行上下文切换(CPU 调度),让多个任务 "看起来" 同时执行。例如:使用 Thread 类、Task.Run(默认使用线程池线程)创建新线程执行任务。
2025年10月14日
1、进行耗时操作时,可以处理用户的其他输入输出。比如,如果在UI线程里面进行耗时操作,界面会不响应用户操作。
2、提升程序性能。现在的电脑一般都是多核CPU,多线程并行处理事务,可以大大提升程序的性能。
针对第一点,为我们定位界面不响应问题指明了一个方向;针对第二点,为我们提升软件处理效率指明了一个方向。
2025年10月14日
在互联网大厂的业务场景中,后端服务面临着海量的用户请求。以电商平台为例,在双 11、618 等大型促销活动期间,抢购活动瞬间可能会有几万甚至几十万的订单请求涌入。如果采用单线程处理,服务器只能按照请求的先后顺序,一个一个地处理订单,不仅效率低下,还可能因为长时间的等待导致用户失去耐心,放弃购买。
再比如社交平台,消息推送功能需要同时处理众多用户的消息分发。单线程处理时,当有大量新消息产生,推送速度极慢,用户不能及时收到消息通知,严重影响用户体验。而多线程能够让程序同时执行多个任务,充分利用 CPU 资源,就像为系统配备了多个勤劳的 “小助手”,它们可以同时处理不同的请求,大大提升系统的处理能力和响应速度。据统计,合理使用多线程技术,能让系统的处理性能提升 3 - 5 倍,这就是多线程在后端开发中至关重要的原因。