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

并发 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 上传图片的详细步骤示例&#xff1a; 定义一个方法&#xff0c;用于选择图片并上传&#xff1a; methods: {chooseImage() {uni.chooseImage({count: 1, // 最多选择的图片数量sizeType: [original, compressed], // 可以指定原图或压缩图sourceType: [album, …...

apache2配置文件 Require all granted是什么意思

修改apache2的配置文件 /etc/apache2/apache2.conf&#xff0c;需要增加网站代码的路径&#xff0c;下列配置是什么意思呢 <Directory "/var/www/html">Options FollowSymLinksAllowOverride AllRequire all granted </Directory> 1. Options Options …...

c/c++ 的一些知识

c 面向对象是一种思想&#xff0c;通常情况下都是以组合为主&#xff0c;也就是在子类里定义一个基类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时&#xff0c;是由于传输流超过1M。 1、需要在rancher的ingress中设置参数解决。 配置注释&a…...

【LeetCode题目详解】第八章 贪心算法 part01 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和 day31补

贪心算法理论基础 关于贪心算法&#xff0c;你该了解这些&#xff01; 题目分类大纲如下&#xff1a; # 什么是贪心 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 这么说有点抽象&#xff0c;来举一个例子&#xff1a; 例如&#xff0c;有一堆钞票&…...

ssm+vue中国咖啡文化宣传网站源码和论文

ssmvue中国咖啡文化宣传网站源码和论文078 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 课题背景 随着时代的发展和人们生活理念的进一步改变&#xff0c;咖啡业已经成为了全球经济中发展最迅猛的产业之一。…...

基于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 链接&#xff0c;描述 https://www.lintcode.com/problem/476/description 有一个石子归并的游戏。最开始的时候&#xff0c;有n堆石子排成一列&#xff0c;目标是要将所有的石子合并成一堆。合并规则如下&#xff1a;每一次可以合并相邻位置的两堆石子 每次…...

4. 池化层相关概念

4.1 池化层原理 ① 最大池化层有时也被称为下采样。 ② dilation为空洞卷积&#xff0c;如下图所示。 ③ Ceil_model为当超出区域时&#xff0c;只取最左上角的值。 ④ 池化使得数据由5 * 5 变为3 * 3,甚至1 * 1的&#xff0c;这样导致计算的参数会大大减小。例如1080P的电…...

ChatGPT Prompting开发实战(一)

一、关于ChatGPT Prompting概述 当我们使用ChatGPT或者调用OpenAI的API时&#xff0c;就是在使用prompt进行交互&#xff0c;用户在对话过程中输入的一切信息都是prompt&#xff08;提示词&#xff09;&#xff0c;当然工业级的prompt与人们通常理解的prompt可能不太一样。下面…...

VB车辆管理系统SQL设计与实现

摘 要 随着信息时代的到来,信息高速公路的兴起,全球信息化进入了一个新的发展时期。人们越来越认识到计算机强大的信息模块处理功能,使之成为信息产业的基础和支柱。 我国经济的快速发展,汽车已经成为人们不可缺少的交通工具。对于拥有大量车辆的机关企事业来说,车辆的…...

java 泛型

概述 泛型在java中有很重要的地位&#xff0c;在面向对象编程及各种设计模式中有非常广泛的应用。 泛型&#xff0c;就是类型参数。 一提到参数&#xff0c;最熟悉的就是定义方法时有形参&#xff0c;然后调用此方法时传递实参。 那么类型参数理解呢&#xff1f; 顾名思义&…...

git 查看/配置 local/global 用户名称和用户邮箱

1、--local: 本地设置&#xff08;仅对当前仓库有效&#xff09; git config --local user.name “你的名称” git config --local user.email “你的邮箱” 2、--global 全局设置&#xff08;对当前用户的所有仓库有效&#xff09; git config --global user.name “你的名称…...

无涯教程-分类算法 - 简介

分类可以定义为根据观测值或给定数据点预测类别的过程。分类的输出可以采用"黑色"或"白色"或"垃圾邮件"或"非垃圾邮件"的形式。 在数学上&#xff0c;分类是从输入变量(X)到输出变量(Y)近似映射函数(f)的任务&#xff0c;它属于有监督…...

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" 下面还有这么多&#xff0c;参考&#xff1a; (venv) yeqiangyeqiang-MS-7B23:/…...

MATLAB算法实战应用案例精讲-【自然语言处理】语义分割模型-DeepLabV3

目录 1、DeepLab系列简介 1.1.DeepLabV1 1.1.1创新点&#xff1a; 1.1.2. 动机&#xff1a; 1.1.3. 应对策略&#xff1a; 1.2.DeepLabV2 1.2.1.创新点&#xff1a; 1.2.2.动机 1.2.3. 应对策略&#xff1a; 1.3.DeepLabV3 1.3.1创新点&#xff1a; 1.3.2. 动机&am…...

road to master

零、学习计划 数据库相关 索引 我以为我对数据库索引很了解&#xff0c;直到我遇到了阿里面试官 - 知乎 (zhihu.com)给我一分钟&#xff0c;让你彻底明白MySQL聚簇索引和非聚簇索引 - 知乎 (zhihu.com)聚集索引&#xff08;聚类索引&#xff09;与非聚集索引&#xff08;非聚类…...

<深度学习基础> 激活函数

为什么需要激活函数&#xff1f;激活函数的作用&#xff1f; 激活函数可以引入非线性因素&#xff0c;可以学习到复杂的任务或函数。如果不使用激活函数&#xff0c;则输出信号仅是一个简单的线性函数。线性函数一个一级多项式&#xff0c;线性方程的复杂度有限&#xff0c;从…...

保姆级教程:用命令行搞定npm 2FA配置,告别网页来回跳转

命令行极客指南&#xff1a;npm 2FA全流程自动化实战 每次发布npm包都要掏出手机查验证码&#xff1f;在无头服务器上部署时被2FA卡住&#xff1f;作为命令行重度用户&#xff0c;我们完全可以在终端里完成从启用、日常使用到禁用2FA的全流程。本文将带你用纯CLI方式打通npm双因…...

苹果防线全线血崩,Mythos5天攻破最强硬件,全球20亿台设备危了

太震撼了&#xff0c;苹果花5年数十亿美元造出最强硬件安全防线MIE&#xff0c;三个黑客加一个AI&#xff0c;5天就把它打穿了&#xff01;20亿台苹果设备的安全逻辑正在被改写&#xff0c;人类安全系统正迎来「奥本海默时刻」 。 就在刚刚&#xff0c;苹果这座「永不陷落的堡…...

RISC-V PLIC中断控制器详解:从原理到SiFive U54实战配置

1. 平台级中断控制器&#xff08;PLIC&#xff09;是什么&#xff1f;为什么需要它&#xff1f;如果你正在接触基于RISC-V架构的嵌入式系统开发&#xff0c;尤其是像SiFive U54这样的多核处理器&#xff0c;那么“PLIC”这个缩写会频繁地出现在你的视野里。它全称是Platform-Le…...

LizzieYzy围棋AI分析工具:3个月提升1个段位的秘密武器

LizzieYzy围棋AI分析工具&#xff1a;3个月提升1个段位的秘密武器 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy 你是否曾经在对弈后复盘时感到迷茫&#xff1f;明明知道输棋了&#xff0c;却找不…...

BDInfo终极指南:如何用免费工具深度解析蓝光光盘技术参数

BDInfo终极指南&#xff1a;如何用免费工具深度解析蓝光光盘技术参数 【免费下载链接】BDInfo BDInfo from http://www.cinemasquid.com/blu-ray/tools/bdinfo 项目地址: https://gitcode.com/gh_mirrors/bd/BDInfo 还在为看不懂蓝光光盘的技术规格而烦恼吗&#xff1f;…...

别再手动搬数据了!STM32CubeMX配置SDIO DMA,让FatFs文件读写性能翻倍

STM32CubeMX实战&#xff1a;用DMA解锁SD卡与FatFs的终极性能 在嵌入式系统开发中&#xff0c;存储性能往往是制约整体效率的关键瓶颈。想象一下这样的场景&#xff1a;你的设备正在以最高优先级处理传感器数据&#xff0c;同时需要将采集结果实时写入SD卡。此时如果采用传统的…...

从零到一:手把手部署openGauss极简版并完成基础运维

1. 环境准备&#xff1a;从零搭建openGauss的基石 第一次接触openGauss时&#xff0c;我被它"极简版"的宣传吸引&#xff0c;但真正动手部署才发现&#xff0c;前期环境准备才是决定成败的关键。就像盖房子需要打地基&#xff0c;数据库安装前的系统配置直接影响后续…...

双系统党必看:如何把Windows 11设为Ubuntu GRUB菜单的默认启动项(保姆级图文)

双系统用户终极指南&#xff1a;优雅配置GRUB默认启动Windows 11 作为一名长期在Windows和Ubuntu双系统间切换的用户&#xff0c;我完全理解那种开机时盯着GRUB菜单等待倒计时结束的焦躁感。特别是当你赶着开会却误入Ubuntu&#xff0c;或是深夜想打游戏却手滑选了错误选项时&a…...

CircuitPython与Crickit驱动NeoPixel灯带:动态灯光效果全解析

1. 项目概述&#xff1a;用代码点亮创意&#xff0c;从静态到动态的灯光艺术 在嵌入式开发和创意电子项目中&#xff0c;灯光从来不只是简单的照明。它可以是机器人的“眼睛”&#xff0c;是智能家居的“情绪”&#xff0c;更是交互艺术装置的“灵魂”。如果你玩过Arduino或者…...

Sora提示词工程:从静态描述到动态世界导演的AI视频创作指南

1. 项目概述&#xff1a;当“提示词”成为Sora的“方向盘”最近在AI视频生成圈子里&#xff0c;一个叫SoraEase/sora-prompt的项目开始被频繁提及。乍一看&#xff0c;这只是一个GitHub上的开源仓库&#xff0c;里面可能收集了一些用于OpenAI Sora模型的提示词&#xff08;Prom…...