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

Java实现异步开发的方式

 1)、继承 Thread
  2)、实现 Runnable 接口
 3)、实现 Callable 接口 + FutureTask (可以拿到返回结果,可以处理异常)
 4)、使用线程池

 区别:1、2)不能得到返回值
           3)可以获得返回值
           但1、2、3都不能控制资源,会造成系统资源浪费
           只有4)可以控制资源,优点是性能稳定

所以在在业务代码开发中,1、2、3)启动线程的方式都不用,应该将所有的多线程异步任务交给线程池来执行。

示例代码:

public class ThreadTest {public static ExecutorService executorService= Executors.newFixedThreadPool(10);public static void main(String[] args)throws Exception {System.out.println("main start.........");//一.extends Thread
//        Thread01 thread01=new Thread01();
//        new Thread(thread01).start();//二.implements Runnable
//        Runnable01 runnable01=new Runnable01();
//        new Thread(runnable01).start();//三.implements Callable
//        FutureTask<Integer> futureTask=new FutureTask<>(new Callable01());
//        new Thread(futureTask).start();
//        //futureTask.get方法会阻塞直到拿到结果
//        Integer result =  futureTask.get();
//        System.out.println("main end........."+result);//四.使用线程池的方式实现异步编程executorService.execute(new Runnable01());}public static class  Thread01 extends Thread{public void run(){System.out.println("当前线程:"+Thread.currentThread().getId());Integer i=10/2;System.out.println("运算结果.........:"+i);}}public static class Runnable01 implements Runnable{@Overridepublic void run() {System.out.println("当前线程:"+Thread.currentThread().getId());Integer i=10/2;System.out.println("运算结果.........:"+i);}}public static class Callable01 implements Callable<Integer>{@Overridepublic Integer call() throws Exception {System.out.println("当前线程:"+Thread.currentThread().getId());Integer i=10/2;System.out.println("运算结果.........:"+i);return i;}}
}

线程池执行有2个方法,分别是execute()和submit(),它们的区别是submit方法执行会有返回值,而,execute()方法无返回值,exeucte()只能接收实现Runnable的类,而submit可接收实现Runnable或Callable的类

相关文章:

Java实现异步开发的方式

1&#xff09;、继承 Thread 2&#xff09;、实现 Runnable 接口 3&#xff09;、实现 Callable 接口 FutureTask &#xff08;可以拿到返回结果&#xff0c;可以处理异常&#xff09; 4&#xff09;、使用线程池 区别&#xff1a;1、2&#xff09;不能得到返回值 …...

小知识点快速总结:Batch Normalization Layer(BN层)的作用

本系列文章只做简要总结&#xff0c;不详细说明原理和公式。 目录 1. 参考文章2. 主要作用3. 具体分析3.1 正则化&#xff0c;降低过拟合3.2 提高模型收敛速度&#xff0c;加速训练3.3 减少梯度爆炸或者梯度消失的情况 4. 补充4.1 BN层做的是标准化不是归一化4.2 BN层的公式4.…...

【SpringCloud】负载均衡(Spring Cloud LoadBalancer)

负载均衡 当服务流量增大时&#xff0c;通常会采用增加机器的方式进行扩容。负载均衡就是用来在多个机器或者其他资源中&#xff0c;按照一定的规则合理分配负载。其中的实现可以分成客户端负载均衡和服务端负载均衡。 服务端负载均衡 在服务端进行负载均衡的算法分配。 比…...

三生随记——输入法之谜

在深夜的电脑前&#xff0c;李浩专心致志地敲打着键盘&#xff0c;为他的小说写下最后一章。然而&#xff0c;随着他不断输入文字&#xff0c;他渐渐察觉到一丝不对劲。每次他尝试输入特定的词汇&#xff0c;输入法都会自动跳转到一些与主题毫不相关的句子&#xff0c;甚至有些…...

【名词解释】Unity中的3D物理系统:刚体

Unity中的3D物理系统是用于模拟现实世界中物体的运动和相互作用的一套工具和组件。刚体&#xff08;Rigidbody&#xff09;是Unity 3D物理系统中的一个核心组件&#xff0c;它允许游戏对象&#xff08;GameObject&#xff09;受到重力和外力的影响&#xff0c;并参与碰撞检测。…...

icon转svg处理

一般情况下&#xff0c;图标我们可以找UI或者去iconfont.cn获得一个svg格式的文件。然后再IDE中以文本的方式打开&#xff0c;然后格式化&#xff0c;就可以看到代码。代码中一般是最外层一个svg标签&#xff0c;里面是一个或者多个path。这个时候&#xff0c;我们使用h方法来实…...

已成功见刊检索的国际学术会议论文海报展示(2)

【先投稿先送审】第四届计算机、物联网与控制工程国际学术会议&#xff08;CITCE 2024) 大会官网&#xff1a;www.citce.org 时间地点&#xff1a;2024年11月1-3日&#xff0c;中国-武汉 收录检索&#xff1a;EI Compendex&#xff0c;Scopus 主办单位&#xff1a;四川师范…...

EasyCVR/EasyDSS无人机直播技术助力野生动物监测

近日有新闻报道&#xff0c;一名挖掘机师傅在清理河道时&#xff0c;意外挖出一只稀有的扬子鳄&#xff0c;挖机师傅小心翼翼地将其放在一边&#xff0c;扬子鳄也顺势游回一旁的河道中。 随着人类对自然环境的不断探索和开发&#xff0c;野生动物及其栖息地的保护显得愈发重要。…...

AI视频教程下载-ChatGPT 生产力 + 时间管理

ChatGPT Productivity Time Management. ChatGPT Productivity ChatGPT 显著提升生产力 不寻常的时间管理技巧。ChatGPT 工作&#xff0c;Chat GPT 自动化&#xff0c;ChatGPT 2023&#xff01; 对关于ChatGPT的讨论感到好奇&#xff0c;想知道如何利用它为自己带来好处吗&a…...

Java 集合框架:LinkedList 的介绍、使用、原理与源码解析

大家好&#xff0c;我是栗筝i&#xff0c;这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 014 篇文章&#xff0c;在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验&#xff0c;并希望进…...

【Ruby爬虫01】某吃瓜网站图片数据采集

介绍 由于最近在学习Ruby&#xff0c;写一个爬虫锻炼一下。涉及xml解析、多线程、xpath语法等基础知识。 实现代码 使用说明 使用前请先安装如下gem gem install nokogiri http openssl# nokogiri&#xff1a;一个解析xml和html的库&#xff0c;支持css、xpath语法 # htt…...

可以免费领取tokens的大模型服务

本文更新时间&#xff1a;2024年6月20日 豆包大模型 “亲爱的客户&#xff0c;模型提供方将在5月15日至8月30日期间&#xff0c;为您提供一次独特的机会&#xff0c;即高达5亿tokens的免费权益。这是我们对您长期支持的感谢&#xff0c;也是对未来合作的期待。” 在8月30日之…...

NSSCTF-Web题目11

目录 [鹤城杯 2021]EasyP 1、题目 2、知识点 3、思路 [SWPUCTF 2022 新生赛]numgame 1、题目 2、知识点 3、思路 [鹤城杯 2021]EasyP 1、题目 2、知识点 php代码审计 3、思路 打开题目&#xff0c;出现一段代码&#xff0c;我们对代码进行审计 这里出现了很多不懂的…...

【数据结构】第十八弹---C语言实现堆排序

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、堆排序 1.1、基本思想 1.2、初步代码实现 1.3、代码优化 1.4、代码测试 总结 1、堆排序 在博主数据结构第十二弹---堆的应用有详细讲解堆…...

[面试题]Kafka

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…...

centos7 离线安装zip和unzip

解压的时候发现不能解压&#xff0c;报-bash: unzip: command not found 1、访问https://www.rpmfind.net/linux/rpm2html/search.php?queryzip&submitSearch…&systemcentos&arch#/ 2、输入zip和centos搜索&#xff0c;选择el7下载 3、输入unzip和centos搜索&am…...

Linux下lsof命令使用

目录 lsof 命令使用指南基本语法常用选项使用示例 lsof vs netstatlsofnetstat区别示例对比 lsof 命令使用指南 lsof (List Open Files) 是一个用于列出当前系统中打开文件的命令&#xff0c;适用于 Unix 和类 Unix 操作系统。它不仅可以列出常规文件&#xff0c;还可以列出打…...

基于ChatGPT的大型语言模型试用心得

近年来&#xff0c;ChatGPT这样的大型语言模型&#xff0c;它如同一颗冉冉升起的新星&#xff0c;迅速在商业、教育、娱乐等多个领域照亮了创新的天空&#xff0c;极大地革新了我们的工作与日常生活。 最近我发现一些国内用户也能自由访问的中文ChatGPT APP。这个平台不仅提供…...

Python 列表添加多个值(四种方法)

Python 列表添加多个值有多种方法,以下是其中几种实现方法: 一、使用extend()方法 Python 中列表对象有一个 extend() 方法,它可以一次性添加另一个列表中的所有元素到当前列表中。 例1: a = [1, 2, 3] b = [4, 5, 6] a.extend(b)...

VMware RedHat虚拟机磁盘扩容(添加磁盘和扩展磁盘)

前言 自己的电脑上配一个虚拟机还是很有必要的&#xff0c;用起来比双系统方便一点&#xff0c;之前搞了100g的ubuntu没用到&#xff0c;后面重装redhat觉得随便搞个20g就够用了&#xff0c;后面用到之后就遇到磁盘不够用的情况&#xff0c;只能说情况允许的话&#xff0c;磁盘…...

最近,GPT-4o横空出世。对GPT-4o这一人工智能技术进行评价,包括版本间的对比分析、GPT-4o的技术能力以及个人整体感受等

GPT-4o是一款引人瞩目的人工智能技术&#xff0c;它在之前版本的基础上取得了长足的进步。本文将对GPT-4o进行评价&#xff0c;包括版本间的对比分析、GPT-4o的技术能力以及个人整体感受等。 首先&#xff0c;我们来进行GPT-4o与之前版本的对比分析。GPT-4o相较于GPT-3和GPT-2…...

C#面:C#支持多重继承么?

C#不支持多重继承。在C#中&#xff0c;一个类只能直接继承自一个基类。这是由于C#的设计目标之一是避免多重继承可能带来的复杂性和潜在的问题。 然而&#xff0c;C#提供了接口&#xff08;interface&#xff09;的概念来实现类似多重继承的功能。一个类可以实现多个接口&…...

细说MCU修改回调函数调用模式的方法

目录 1、硬件及工程 2、实现方法 &#xff08;1&#xff09;修改while(1)中的代码&#xff1a; &#xff08;2&#xff09;修改2 &#xff08;3&#xff09;修改3 &#xff08;4&#xff09;修改4 &#xff08;5&#xff09;修改5 3、下载并运行 在本文作者的文章中&a…...

Java共享台球室无人系统支持微信小程序+微信公众号

共享台球室无人系统 &#x1f3b1; 创新台球体验 近年来&#xff0c;共享经济如火如荼&#xff0c;从共享单车到共享汽车&#xff0c;无一不改变着我们的生活方式。而如今&#xff0c;这一模式已经渗透到了更多领域&#xff0c;共享台球室便是其中之一。不同于传统的台球室&a…...

如何开发一个海外仓系统?难度在哪,怎么选择高性价解决方案

作为海外仓管理的重要工具&#xff0c;海外仓系统的实际应用价值还是非常高的。为了让大家能更好的理解wms海外仓系统&#xff0c;今天会介绍海外仓系统开发的逻辑架构&#xff0c;以及作为海外仓企业要怎么确定高性价比的数字化管理解决方案。 1、开发海外仓系统要考虑的功能…...

计算机组成原理(Wrong Question)

目录 一、计算机系统概述 *1.1 计算机发展历程 1.2 计算机系统层次结构 1.3 计算机的性能指标 二、 数据的表示和运算 2.1 数制和编码 2.2 运算方法和运算电路 2.3 浮点数的表示与运算 三、存储系统 3.1 存储器概述 3.2 主存储器 3.3 主存储器与CPU的连接 3.4 外部…...

ACL2024 | AI的时空穿越记:大型语言模型共时推理的奇幻之旅!

作者&#xff1a;苏肇辰 标题&#xff1a;Living in the Moment: Can Large Language Models Grasp Co-Temporal Reasoning? 录取&#xff1a;ACL2024 Main 论文链接&#xff1a;https://arxiv.org/abs/2406.09072 代码链接&#xff1a;https://github.com/zhaochen0110/Cotem…...

从xxl-job源码中学习Netty的使用

1. 启动与Spring实例化 com.xxl.job.core.executor.impl.XxlJobSpringExecutor.java类 继承SmartInitializingSingleton 类&#xff0c;在afterSingletonsInstantiated 实例化后方法中 调用initJobHandlerMethodRepository 把所有的xxljob任务管理起来&#xff1b; private…...

人工智能发展历程了解和Tensorflow基础开发环境构建

目录 人工智能的三次浪潮 开发环境介绍 Anaconda Anaconda的下载和安装 下载说明 安装指导 模块介绍 使用Anaconda Navigator Home界面介绍 Environment界面介绍 使用Jupter Notebook 打开Jupter Notebook 配置默认目录 新建文件 两种输入模式 Conda 虚拟环境 添…...

makefile追加warning日志

在Makefile中&#xff0c;你不能直接“追加”warning日志到构建过程中&#xff0c;但你可以通过几种方式在构建时产生额外的警告或消息。以下是一些常用的方法&#xff1a; 使用echo或printf命令&#xff1a; 在Makefile的规则中&#xff0c;你可以使用echo或printf命令来输出警…...

建筑模板厂家联系方式/360搜索引擎优化

相信经常关注网站优化SEO的人都发现&#xff0c;google算法在改变&#xff0c;百度也是。以前的一些网站优化SEO方法在目前来说已经失效不管用了&#xff0c;或者没什么大影响了。首先我们分析一下&#xff0c;要想百度更新自己的站&#xff0c;首先要让百度爬到自己的站。但是…...

wordpress模板最多使用/seo月薪

客户端的连接的建立Redis通过在TCP端口上进行监听&#xff0c;或者Unix socket(如果启用)的方式来接受客户端的连接。当一个新的客户端连接被接受执行以下操作&#xff1a;当Redis使用非阻塞I/O复用&#xff0c;客户端socket设置为非阻塞状态。socket TCP_NODELAY属性被设置确保…...

网站html5自适应屏幕/提交网址给百度

类初始化 &#xff08;static部分&#xff09; 执行clinit方法 main方法 所在的类需要 先加载和初始化子类的初始化需要先初始化父类类初始化就是指向<clinit>()方法 ①、<clinit>()方法由静态 类变量显示赋值代码 和 静态代码块 组成 ②、类变量显示赋值代码 …...

企业建设网站多少钱/seo专员工资待遇

【原文】 17 子夏(1)曰&#xff1a;“贤贤(2)易色&#xff1b;事父母能竭其力&#xff1b;事君&#xff0c;能致其身(4)&#xff1b;与朋友交&#xff0c;言而有信。虽曰未学&#xff0c;吾必谓之学矣。” 【注释】 子夏&#xff1a;姓卜&#xff0c;名商&#xff0c;字子夏&a…...

怎样做简单公司网站/简述seo和sem的区别与联系

一笔画问题 时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;4描述zyc从小就比较喜欢玩一些小游戏&#xff0c;其中就包括画一笔画&#xff0c;他想请你帮他写一个程序&#xff0c;判断一个图是否能够用一笔画下来。 规定&#xff0c;所有的边都…...

天津网站建设推荐安徽秒搜科技/软件定制开发

转&#xff1a;http://blog.sina.com.cn/s/blog_4cd8dd130100ut5r.html Xcode4中使用静态库 1. 创建一个工作区&#xff1a;".xcworkspace" 2. 将项目添加到工作区&#xff08;新建/添加现有项目&#xff09; 3. 向应用程序target添加静态库&#xff0c;从Workspac…...