- 知其然,知其所以然。只知其然,不知其所以然,则学习如空中楼阁。 欢迎来到本系列最核心的课程,异步并发爬虫。本部分分为三篇博客来叙述,准备好上车了吗? 多线程技术 文章开始,我们先来看一下线程池的使用与效果。不知道效果就一味的讲为什么会怎么怎么样,显得枯燥。 什么是线程? 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运... 知其然,知其所以然。只知其然,不知其所以然,则学习如空中楼阁。 欢迎来到本系列最核心的课程,异步并发爬虫。本部分分为三篇博客来叙述,准备好上车了吗? 多线程技术 文章开始,我们先来看一下线程池的使用与效果。不知道效果就一味的讲为什么会怎么怎么样,显得枯燥。 什么是线程? 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运...
- 一、Java 中的线程池1. 线程池状态ThreadPoolExecutor使用int的高3位来表示线程池状态,低29位表示线程数量 // runState is stored in the high-order bits private static final int RUNNING = -1 << COUNT_BITS; private static final... 一、Java 中的线程池1. 线程池状态ThreadPoolExecutor使用int的高3位来表示线程池状态,低29位表示线程数量 // runState is stored in the high-order bits private static final int RUNNING = -1 << COUNT_BITS; private static final...
- 1. 等待一个子线程执行完毕 public static void main(String[] args) { ExecutorService threadPool = Executors.newSingleThreadExecutor(); Future<String> future = threadPool.submit( new Callable... 1. 等待一个子线程执行完毕 public static void main(String[] args) { ExecutorService threadPool = Executors.newSingleThreadExecutor(); Future<String> future = threadPool.submit( new Callable...
- 线程池:一个池子里创建1个或多个线程,通常往这个池子里扔进去多个任务,然后多个线程会抢着执行这些任务,如果一群狼共同吃掉这些羊群(多个任务)。 1. 创建线程池 目前我了解的创建线程池有4种方式: (1)线程池里的线程数是固定不变的;(2)线程池里只有1个线程池;(3)线程池里的线程数是动态变化的;(4)定时执行任务的线程池。 接下来我们就依次介绍一下上述4... 线程池:一个池子里创建1个或多个线程,通常往这个池子里扔进去多个任务,然后多个线程会抢着执行这些任务,如果一群狼共同吃掉这些羊群(多个任务)。 1. 创建线程池 目前我了解的创建线程池有4种方式: (1)线程池里的线程数是固定不变的;(2)线程池里只有1个线程池;(3)线程池里的线程数是动态变化的;(4)定时执行任务的线程池。 接下来我们就依次介绍一下上述4...
- Py之reprint:reprint的简介、安装、使用方法之详细攻略 目录 reprint的简介 reprint的安装 reprint的使用方法 reprint的简介 reprint 是一个适用于 Python3 的简易变量绑定与多行输出刷新的库。特性 + 简易变量绑定,内容修改时自动刷新命令行输出 + 多行输出刷新,实... Py之reprint:reprint的简介、安装、使用方法之详细攻略 目录 reprint的简介 reprint的安装 reprint的使用方法 reprint的简介 reprint 是一个适用于 Python3 的简易变量绑定与多行输出刷新的库。特性 + 简易变量绑定,内容修改时自动刷新命令行输出 + 多行输出刷新,实...
- 异常 异常的超类java.lang.Throwable Throwable:包括Error和Exception Exception:编译期异常,包括:RuntimeException:运行期异常 异常产生过程 JVM检测程序出现异常: JVM会根据异常产生的原因创建一个异常对象,这个异常对象包括异常产生的(内容,原因,位置);在getElement方法中,没... 异常 异常的超类java.lang.Throwable Throwable:包括Error和Exception Exception:编译期异常,包括:RuntimeException:运行期异常 异常产生过程 JVM检测程序出现异常: JVM会根据异常产生的原因创建一个异常对象,这个异常对象包括异常产生的(内容,原因,位置);在getElement方法中,没...
- 线程池 线程通信,避免多线程对同一共享变量的争夺。 等待与唤醒机制,wait – notify wait-- notify 必须由同一个锁对象调用 wait-- notify 属于Object类的方法 wait-- notify 必须要在同步代码块或者同步函数中使用 生产者和消费者 等待与唤醒机制 线程池 线程复用,让线程完成任务之后再继续进行其他任务... 线程池 线程通信,避免多线程对同一共享变量的争夺。 等待与唤醒机制,wait – notify wait-- notify 必须由同一个锁对象调用 wait-- notify 属于Object类的方法 wait-- notify 必须要在同步代码块或者同步函数中使用 生产者和消费者 等待与唤醒机制 线程池 线程复用,让线程完成任务之后再继续进行其他任务...
- Algorithm:算法方向——BAT公司问题面试之计算机基础(进程与线程的区别)、经典概率问题等集锦 目录 计算机基础问题 1、进程与线程的区别 概率问题 1、貂蝉与西施回头率比美问题 计算机基础问题 1、进程与线程的区别 进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位... Algorithm:算法方向——BAT公司问题面试之计算机基础(进程与线程的区别)、经典概率问题等集锦 目录 计算机基础问题 1、进程与线程的区别 概率问题 1、貂蝉与西施回头率比美问题 计算机基础问题 1、进程与线程的区别 进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位...
- Python之多线程:python多线程设计之同时执行多个函数命令详细攻略 目录 实现功能 采取方法 应用场景 实现功能 同时执行多个函数命令 采取方法 T1、单个实现 import threading threading.Thread(target=my_record()).start()threading.Thre... Python之多线程:python多线程设计之同时执行多个函数命令详细攻略 目录 实现功能 采取方法 应用场景 实现功能 同时执行多个函数命令 采取方法 T1、单个实现 import threading threading.Thread(target=my_record()).start()threading.Thre...
- 0. 用runnable创建线程具有面向对象的思想。 1. quartz 定时器开源库。 3. 多线程间的互斥: (1)多线程间的互斥,用synchronized关键字,两个线程用互斥锁必须用同一个对象才能实现互斥。 (2) 两个非静态函数前加synchronized关键字,它们的公用锁是this,就是当前对象实例。 (... 0. 用runnable创建线程具有面向对象的思想。 1. quartz 定时器开源库。 3. 多线程间的互斥: (1)多线程间的互斥,用synchronized关键字,两个线程用互斥锁必须用同一个对象才能实现互斥。 (2) 两个非静态函数前加synchronized关键字,它们的公用锁是this,就是当前对象实例。 (...
- 一、 通过线程池创建A,B,C三个子线程,并设置A子线程执行1秒;B子线程执行3秒; C子线程执行7秒。 要求:①主线程等待接收子线程执行结果后再执行后续处理。② 在①的基础上,如果子线程执行时间超过5秒,则主线程不再等待子线程结果,直接执行后续流程。 import java.util.ArrayList; import java.util.List; import java.... 一、 通过线程池创建A,B,C三个子线程,并设置A子线程执行1秒;B子线程执行3秒; C子线程执行7秒。 要求:①主线程等待接收子线程执行结果后再执行后续处理。② 在①的基础上,如果子线程执行时间超过5秒,则主线程不再等待子线程结果,直接执行后续流程。 import java.util.ArrayList; import java.util.List; import java....
- 通过多线程技术可以解决人机交互中由于耗时的UI操作,从而造成界面的假死问题。 要求:查阅相关资料,对代码进行改进,以解决由于在不同线程中对控件进行操作从而引发的异常,最终实现界面的动态刷新。 解决方案 1. 在构造方法里面加入 Control.CheckForIllegalCrossThreadCalls = false; windows GUI编... 通过多线程技术可以解决人机交互中由于耗时的UI操作,从而造成界面的假死问题。 要求:查阅相关资料,对代码进行改进,以解决由于在不同线程中对控件进行操作从而引发的异常,最终实现界面的动态刷新。 解决方案 1. 在构造方法里面加入 Control.CheckForIllegalCrossThreadCalls = false; windows GUI编...
- 线程替代方案 subprocess 完全跳过线程,使用进程是派生进程的主要替代方案python2.4后引入 multiprocessiong 使用threading接口派生,使用子进程允许为多核或者多cpu派生进程,接口跟threading非常相似python2.6后引入 concurrent.futures 新的异步执行模块任务级别的操作python3.2后引入 ... 线程替代方案 subprocess 完全跳过线程,使用进程是派生进程的主要替代方案python2.4后引入 multiprocessiong 使用threading接口派生,使用子进程允许为多核或者多cpu派生进程,接口跟threading非常相似python2.6后引入 concurrent.futures 新的异步执行模块任务级别的操作python3.2后引入 ...
- 当运行一个线程函数时,如何为该函数传递参数 import threading # 线程函数 def func1(s, fun): print('正在执行函数func1') fun(s) def ff(s): print(f'ff输出了{s}') t1 = threading.Thread(target=func1, args=('hello world', ff))... 当运行一个线程函数时,如何为该函数传递参数 import threading # 线程函数 def func1(s, fun): print('正在执行函数func1') fun(s) def ff(s): print(f'ff输出了{s}') t1 = threading.Thread(target=func1, args=('hello world', ff))...
- 如何创建和使用在线程内部用的全局对象 ''' threading.local() local类用于创建一个全局对象,不过改该对象只能在线程内部使用,也就是说吗,全局是针对一个线程而言的 ''' import threading import time a = threading.local() def worker(): a.x = 0 for i in rang... 如何创建和使用在线程内部用的全局对象 ''' threading.local() local类用于创建一个全局对象,不过改该对象只能在线程内部使用,也就是说吗,全局是针对一个线程而言的 ''' import threading import time a = threading.local() def worker(): a.x = 0 for i in rang...
上滑加载中
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签