后端开发2025年10月17日
欢迎来到我们的系列博客《Python全景系列》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。 这是本系列的第五篇,我们将深入探讨Python中的并发编程,特别关注多线程和多进程的应用。我们将先从基本概念开始,然后...
后端开发2025年10月12日
目录 1.使用threading模块 2.使用concurrent.futures模块 3.使用multiprocessing模块 4.使用asyncio模块 在Python中,多线程是实现并发的一种方式。多线程可以让程序在同一时间内进行多个任务,从而提高程序的效率和执行速度。 本文将介绍Python中多线程的所有方式,包括使用threading模块、使用...
后端开发2025年10月12日
目录 python+Tkinter+多线程 tkinter与多线程问题 总结 python+Tkinter+多线程 界面和多线程一向是编程里比较难的地方,常见的做法一般是界面一个线程,后台新开一个工作线程,这两个线程进行通信,这样可以让界面不至于为响应。 在python中可以利用队列完成整体的架构设计。 直接给大家看代码吧,一个简单实例,非常好的例子。 i...
后端开发2025年10月07日
目录 为什么要使用多线程? 如何创建和执行一个线程 方法一 正式介绍threading模块 守护线程 Daemon 方法一 方法二 让主线程等待子线程结束 join 线程共享资源可能引起什么问题? 竞态条件 死锁 活锁 多线程的锁机制 下面我们分别通过例子来说明锁是如何解决这些问题的。 多线程的通信 队列 事件(Event) 锁(Lock) 条件变量(Co...
后端开发2025年09月17日
一、线程池简介 传统多线程方案会使用“即时创建,即时销毁”的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务时执行时间较短,而且执行次数及其频繁,那么服务器将处于不停的创建线程,销毁线程的状态。 一个线程的运行时间可以分为三部分:线程的启动时间、线程体的运行时间和线程的销毁时间。 在多线程处理的情景中,如果线程不能被重用,就...
后端开发2025年09月16日
...
后端开发2025年09月14日
一、Java配置线程池 1、线程池分类、其他 1.1、分类 IO密集型 和 CPU密集型 任务的特点不同,因此针对不同类型的任务,选择不同类型的线程池可以获得更好的性能表现。 1.1. IO密集型任务 IO密集型任务的特点是需要频繁读写磁盘、网络或者其他IO资源,执行时间长,CPU占用率较低。 对于这类任务,线程的执行时间主要取决于IO操作的速度,而非C...
后端开发2025年09月14日
三、Java8的CompletableFuture,Java的多线程开发 1、CompletableFuture的常用方法 以后用到再加 runAsync() :开启异步(创建线程执行任务),无返回值 supplyAsync() :开启异步(创建线程执行任务),有返回值 thenApply() :然后应用,适用于有返回值的结果,拿着返回值再去处理。 exce...
后端开发2025年09月09日
本篇内容介绍了“怎么通过继承Thread类创建Java线程类”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 继承 Thread 类创建线程类 Thread 的实现步骤: 定义 Thread 的子类,重写 run()方法,run()方法代表了线程要完成的任务,...
后端开发2025年09月08日
目录 Semaphore 是一种用于控制线程并发访问数的同步工具。它通过维护一定数量的许可证来限制对共享资源的访问。 许可证的数量就是可以同时访问共享资源的线程数目。 当一个线程需要访问共享资源时,它必须先获取一个许可证,如果没有许可证可用,线程就会被阻塞,直到有一个许可证可用。 当一个线程完成了对共享资源的访问后,它必须释放一个许可证,以便其他线程可以获...