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

多线程基础

1. 线程创建的几种方式

2. 锁的类型

  • 在学习JUC之前,加锁、等待、唤醒 分别使用的是 (synchronized、lock)、wait、notify
  • 在学习JUC开始,学会使用lock接口的其他实现类来进行上述操作,比如 ReentrantLock

3. 线程池

在这里插入图片描述

  • ExecutorService 的 submit 和 execute都可以执行 实现了 Runnable 接口的 任务,但是submit 执行的 任务 是可以拿到返回值的,execute则没有
  • 如果 执行 的多个任务中有一个发生了异常,execute 抛出异常,其他线程继续执行新任务,submit 则没有提示(只有主动 Future.get 才能拿到异常信息),其他线程继续执行
  • 如果需要 捕获 线程执行任务时的异常信息,可以在任务代码中加上try catch,但是比较麻烦,推荐重写 afterExecute 方法,参数为 Runnable 和 Throwable,可以通过判断 Throwable 是否有值来 捕获打印异常信息(抖音上刷到的)
    在这里插入图片描述

4. 项目中常用的线程池创建

http://www.lryc.cn/news/217245.html

相关文章:

  • 贝锐向日葵亮相阿里云“云栖大会”:独创专利算法赋能全新云桌面
  • QT在线安装5.15之前的版本(下载速度飞快)
  • 零日漏洞预防
  • 企业内部外网向内网传输文件如何实现高效安全?
  • C++--二叉搜索树初阶
  • Type List(C++ 模板元编程)
  • 使用老北鼻CharGPT对话查询 Qt/C++ 使用gumbo-parse解析加载的html全过程
  • ​ iOS App Store上传项目报错 缺少隐私政策网址(URL)解决方法
  • 设计模式第一课-单例模式(懒汉模式和饿汉模式)
  • Yaml文件详解
  • 【题解 线段树】[蓝桥杯 2022 省 A] 选数异或
  • 宠物喂食器方案智能开发设计
  • chatgpt综述阅读理解
  • XCTF-RSA-2:baigeiRSA2、 cr4-poor-rsa
  • js 根据word文档模板导出内容
  • AIGC | 如何用“Flow”,轻松解决复杂业务问题
  • 多级菜单 树结构 排序 前端 后端 java
  • LAN-Free在数据备份时的应用与优势
  • HTML 文档声明和语言设置
  • 【C++基础知识学习笔记】精华版(复习专用)
  • 探索ChatGPT在学术写作中的应用与心得
  • Android:怎么学习才能更好的进大厂呢?
  • CSS标点符号换行问题
  • jdbc Preparestatement防止SQL注入的原理
  • 如何控制 LLM 的输出格式和解析其输出结果?
  • 【Linux】 ps 命令使用
  • C++二分查找算法的应用:长度递增组的最大数目
  • 提示3D标题编辑器仍在运行怎么解决,以及3D标题编辑器怎么使用
  • 1. PPT高效初始化设置
  • el-cascader级联选择器选中一个全选中问题