并发 04(Callable,CountDownLatch)详细讲解
并发
Callable
1 可以返回值
2可以抛出异常
泛型指的是返回值的类型

public class Send {public static void main(String[] args) {//怎么启动Callable//new Thread().start();Aaa thread=new Aaa();FutureTask futureTask=new FutureTask(thread);new Thread(futureTask,"name").start();}
}
class Aaa implements Callable<String> {@Overridepublic String call() throws Exception {System.out.println("sssss");return "ssss";}
}
CountDownLatch
value(of)返回本身的值
每次有线程调用countDown()数量-1,假设计数器变为0,countDownLatch.await()就会被唤醒,继续执行!
public class Send {public static void main(String[] args) throws InterruptedException {//倒计时CountDownLatch count=new CountDownLatch(6);for (int i = 0; i < 6; i++) {new Thread(()->{System.out.println(Thread.currentThread().getName()+"GO out");count.countDown();//数量-1},String.valueOf(i)).start();}count.await();//等待计数器归零然后在向下执行}
}
CyclicBarrier
public class Send {public static void main(String[] args) {CyclicBarrier cyclicBarrier=new CyclicBarrier(7,()->{System.out.println("召唤神龙");});for (int i = 0; i <7; i++) {final int temp =i;//lambda能操作i吗 线程里只能通过final类型的的变量操作inew Thread(()->{System.out.println(Thread.currentThread().getName()+"收集了"+temp);try {cyclicBarrier.await();//等待} catch (InterruptedException e) {throw new RuntimeException(e);} catch (BrokenBarrierException e) {throw new RuntimeException(e);}}).start();}}
}
相关文章:
并发 04(Callable,CountDownLatch)详细讲解
并发 Callable 1 可以返回值 2可以抛出异常 泛型指的是返回值的类型 public class Send {public static void main(String[] args) {//怎么启动Callable//new Thread().start();Aaa threadnew Aaa();FutureTask futureTasknew FutureTask(thread);new Thread(futureTask,&qu…...
Json路径表达式
原json路径 {"timeStamp": "20220801110008","transIDO": "6ba9088c981b407fb38feasdf09","version": "1.0.0","signMethod": "md5","content": "{\"companyName\&quo…...
【uniapp 上传图片示例】
以下是 uniapp 上传图片的详细步骤示例: 定义一个方法,用于选择图片并上传: methods: {chooseImage() {uni.chooseImage({count: 1, // 最多选择的图片数量sizeType: [original, compressed], // 可以指定原图或压缩图sourceType: [album, …...
apache2配置文件 Require all granted是什么意思
修改apache2的配置文件 /etc/apache2/apache2.conf,需要增加网站代码的路径,下列配置是什么意思呢 <Directory "/var/www/html">Options FollowSymLinksAllowOverride AllRequire all granted </Directory> 1. Options Options …...
c/c++ 的一些知识
c 面向对象是一种思想,通常情况下都是以组合为主,也就是在子类里定义一个基类struct base_t {void (*method)(base_t *base_p); };struct children_t {int a;int b;base_t base;void (*method)(children_t *children_p); };children_t children_creat(i…...
Rancher上的应用服务报错:413 Request Entity Too Large
UI->rancher的ingress->UI前端(在nginx里面)->zuul->server 也就是说没经过一次http servlet 都要设置一下大小 1.rancher的ingress 当出现Request Entity Too Large时,是由于传输流超过1M。 1、需要在rancher的ingress中设置参数解决。 配置注释&a…...
【LeetCode题目详解】第八章 贪心算法 part01 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和 day31补
贪心算法理论基础 关于贪心算法,你该了解这些! 题目分类大纲如下: # 什么是贪心 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 这么说有点抽象,来举一个例子: 例如,有一堆钞票&…...
ssm+vue中国咖啡文化宣传网站源码和论文
ssmvue中国咖啡文化宣传网站源码和论文078 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 课题背景 随着时代的发展和人们生活理念的进一步改变,咖啡业已经成为了全球经济中发展最迅猛的产业之一。…...
基于MATLAB开发AUTOSAR软件应用层Code mapping专题-part 4 Data store标签页介绍
这篇文章我们继续讲解code-mapping的Data stores页,这个页的内容对应的SIMULINK中的模块是Data store memory。 我们首先在模型中创建一个Data store memory模块,如图: Data store memory模块的作用相当于一个全局变量,我们可以在模型的功能逻辑里将一个信号存进去,在另…...
区间型动态规划典型题目:lintcode 476 · 石子归并【中等,免费】lintcode 593 · 石头游戏 II【中等 vip】
题目lintcode476 链接,描述 https://www.lintcode.com/problem/476/description 有一个石子归并的游戏。最开始的时候,有n堆石子排成一列,目标是要将所有的石子合并成一堆。合并规则如下:每一次可以合并相邻位置的两堆石子 每次…...
4. 池化层相关概念
4.1 池化层原理 ① 最大池化层有时也被称为下采样。 ② dilation为空洞卷积,如下图所示。 ③ Ceil_model为当超出区域时,只取最左上角的值。 ④ 池化使得数据由5 * 5 变为3 * 3,甚至1 * 1的,这样导致计算的参数会大大减小。例如1080P的电…...
ChatGPT Prompting开发实战(一)
一、关于ChatGPT Prompting概述 当我们使用ChatGPT或者调用OpenAI的API时,就是在使用prompt进行交互,用户在对话过程中输入的一切信息都是prompt(提示词),当然工业级的prompt与人们通常理解的prompt可能不太一样。下面…...
VB车辆管理系统SQL设计与实现
摘 要 随着信息时代的到来,信息高速公路的兴起,全球信息化进入了一个新的发展时期。人们越来越认识到计算机强大的信息模块处理功能,使之成为信息产业的基础和支柱。 我国经济的快速发展,汽车已经成为人们不可缺少的交通工具。对于拥有大量车辆的机关企事业来说,车辆的…...
java 泛型
概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。 泛型,就是类型参数。 一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。 那么类型参数理解呢? 顾名思义&…...
git 查看/配置 local/global 用户名称和用户邮箱
1、--local: 本地设置(仅对当前仓库有效) git config --local user.name “你的名称” git config --local user.email “你的邮箱” 2、--global 全局设置(对当前用户的所有仓库有效) git config --global user.name “你的名称…...
无涯教程-分类算法 - 简介
分类可以定义为根据观测值或给定数据点预测类别的过程。分类的输出可以采用"黑色"或"白色"或"垃圾邮件"或"非垃圾邮件"的形式。 在数学上,分类是从输入变量(X)到输出变量(Y)近似映射函数(f)的任务,它属于有监督…...
python venv 打包,更换路径后,仍然读取到旧路径 ,最好别换路径,采用docker封装起来
机械盘路径 /home/yeqiang/code/xxx 移动到 /opt/xxx 编辑/opt/xxx/venv/bin/activate VIRTUAL_ENV"/home/yeqiang/code/xxx/venv" 改为 VIRTUAL_ENV"/opt/xxx/venv" 下面还有这么多,参考: (venv) yeqiangyeqiang-MS-7B23:/…...
MATLAB算法实战应用案例精讲-【自然语言处理】语义分割模型-DeepLabV3
目录 1、DeepLab系列简介 1.1.DeepLabV1 1.1.1创新点: 1.1.2. 动机: 1.1.3. 应对策略: 1.2.DeepLabV2 1.2.1.创新点: 1.2.2.动机 1.2.3. 应对策略: 1.3.DeepLabV3 1.3.1创新点: 1.3.2. 动机&am…...
road to master
零、学习计划 数据库相关 索引 我以为我对数据库索引很了解,直到我遇到了阿里面试官 - 知乎 (zhihu.com)给我一分钟,让你彻底明白MySQL聚簇索引和非聚簇索引 - 知乎 (zhihu.com)聚集索引(聚类索引)与非聚集索引(非聚类…...
<深度学习基础> 激活函数
为什么需要激活函数?激活函数的作用? 激活函数可以引入非线性因素,可以学习到复杂的任务或函数。如果不使用激活函数,则输出信号仅是一个简单的线性函数。线性函数一个一级多项式,线性方程的复杂度有限,从…...
保姆级教程:用命令行搞定npm 2FA配置,告别网页来回跳转
命令行极客指南:npm 2FA全流程自动化实战 每次发布npm包都要掏出手机查验证码?在无头服务器上部署时被2FA卡住?作为命令行重度用户,我们完全可以在终端里完成从启用、日常使用到禁用2FA的全流程。本文将带你用纯CLI方式打通npm双因…...
苹果防线全线血崩,Mythos5天攻破最强硬件,全球20亿台设备危了
太震撼了,苹果花5年数十亿美元造出最强硬件安全防线MIE,三个黑客加一个AI,5天就把它打穿了!20亿台苹果设备的安全逻辑正在被改写,人类安全系统正迎来「奥本海默时刻」 。 就在刚刚,苹果这座「永不陷落的堡…...
RISC-V PLIC中断控制器详解:从原理到SiFive U54实战配置
1. 平台级中断控制器(PLIC)是什么?为什么需要它?如果你正在接触基于RISC-V架构的嵌入式系统开发,尤其是像SiFive U54这样的多核处理器,那么“PLIC”这个缩写会频繁地出现在你的视野里。它全称是Platform-Le…...
LizzieYzy围棋AI分析工具:3个月提升1个段位的秘密武器
LizzieYzy围棋AI分析工具:3个月提升1个段位的秘密武器 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy 你是否曾经在对弈后复盘时感到迷茫?明明知道输棋了,却找不…...
BDInfo终极指南:如何用免费工具深度解析蓝光光盘技术参数
BDInfo终极指南:如何用免费工具深度解析蓝光光盘技术参数 【免费下载链接】BDInfo BDInfo from http://www.cinemasquid.com/blu-ray/tools/bdinfo 项目地址: https://gitcode.com/gh_mirrors/bd/BDInfo 还在为看不懂蓝光光盘的技术规格而烦恼吗?…...
别再手动搬数据了!STM32CubeMX配置SDIO DMA,让FatFs文件读写性能翻倍
STM32CubeMX实战:用DMA解锁SD卡与FatFs的终极性能 在嵌入式系统开发中,存储性能往往是制约整体效率的关键瓶颈。想象一下这样的场景:你的设备正在以最高优先级处理传感器数据,同时需要将采集结果实时写入SD卡。此时如果采用传统的…...
从零到一:手把手部署openGauss极简版并完成基础运维
1. 环境准备:从零搭建openGauss的基石 第一次接触openGauss时,我被它"极简版"的宣传吸引,但真正动手部署才发现,前期环境准备才是决定成败的关键。就像盖房子需要打地基,数据库安装前的系统配置直接影响后续…...
双系统党必看:如何把Windows 11设为Ubuntu GRUB菜单的默认启动项(保姆级图文)
双系统用户终极指南:优雅配置GRUB默认启动Windows 11 作为一名长期在Windows和Ubuntu双系统间切换的用户,我完全理解那种开机时盯着GRUB菜单等待倒计时结束的焦躁感。特别是当你赶着开会却误入Ubuntu,或是深夜想打游戏却手滑选了错误选项时&a…...
CircuitPython与Crickit驱动NeoPixel灯带:动态灯光效果全解析
1. 项目概述:用代码点亮创意,从静态到动态的灯光艺术 在嵌入式开发和创意电子项目中,灯光从来不只是简单的照明。它可以是机器人的“眼睛”,是智能家居的“情绪”,更是交互艺术装置的“灵魂”。如果你玩过Arduino或者…...
Sora提示词工程:从静态描述到动态世界导演的AI视频创作指南
1. 项目概述:当“提示词”成为Sora的“方向盘”最近在AI视频生成圈子里,一个叫SoraEase/sora-prompt的项目开始被频繁提及。乍一看,这只是一个GitHub上的开源仓库,里面可能收集了一些用于OpenAI Sora模型的提示词(Prom…...
