创建线程的方式_创建线程有几种不同的方式?
方式可以用来创建线程
1)继承Thread类
2)实现Runnable接口
3)应用程序可以适用Executor框架来创建线程池
实现了Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承,而Java不支持多继承,只能实现接口。同时,线程池也是非常高效的,很容易实现和适用。
举例:
例1:
public class ThreadDemo {public static void main(String[] args) {Runnable task = () -> {try {for(int i = 5; i > 0; i--) {System.out.println("Child Thread: " + i);Thread.sleep(100);}} catch (Exception e) {}System.out.println("child thread exit.");};Thread t1 = new Thread(task);System.out.println("Child Thread: " + t1);t1.start(); try {for(int i = 5; i > 0; i--) {System.out.println("Main Thread: " + i);Thread.sleep(100);}} catch (Exception e) {}System.out.println("Main thread exit.");}
}
例2:
public class ExecutorsTest {public static void main(String[] args) {ExecutorService executor = Executors.newSingleThreadExecutor();Future<String> ft = executor.submit(() -> {System.out.println("Hello Thread!");return "sucess";});try {System.out.println("return : " + ft.get());} catch (Exception e) {e.printStackTrace();}executor.shutdown();}
}
希望对各位正在准备面试的小伙伴有所帮助!
《JAVA面试机经基础篇》 郭屹老师著
欢迎搜索关注公众号 爪哇河谷
或添加我的微信 领取更多干货
创建线程的方式_创建线程有几种不同的方式?相关推荐
- python两个线程交替打印_三线程按顺序交替打印ABC的四种方法
建立三个线程A.B.C,A线程打印10次字母A,B线程打印10次字母B,C线程打印10次字母C,但是要求三个线程同时运行,并且实现交替打印,即按照ABCABCABC的顺序打印. 二.Synchroni ...
- tcl脚本创建多个进程_创建10个高级脚本
tcl脚本创建多个进程 在本文中,我们将为您的角色扮演游戏构建一个库存管理系统和笔记脚本,同时研究您PHP脚本的交互性. 我们还构建了一个基于图像的ID卡生成器,并使用PHP来执行图像处理. 我们将创 ...
- IntelliJ IDEA for Mac 如何创建普通的Java项目_创建项目_新建项目
文章目录 创建 Java 新项目的流程 普通 Java 项目结构 Java 项目结构特例讲解 创建 Java 新项目的流程 Create New Project Empty Project (1)选择 ...
- python线程异常中断_中断线程
如果线程需要执行一个长时间任务,就可能需要能中断线程.中断线程就是其他线程给该线程发一个信号,该线程收到信号后结束执行run()方法,使得自身线程能立刻结束运行. 我们举个栗子:假设从网络下载一个10 ...
- 多线程的实现方式_一文搞懂Java多线程使用方式、实现原理以及常见面试题
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- java定时14点30分_单机定时任务的四种基本实现方式
引言 在实际项目开发中,定时任务调度是经常会出现的一类需求. 定时任务的场景可以说非常广泛,例如: 购买某些视频网站的会员后,每天给会员送成长值,每月给会员送电影券 在保证最终一致性的场景中,利用定时 ...
- 网络资产管理系统_固定资产管理系统的三种网络架构方式
随着互联网技术的发展和信息技术的广泛使用,固定资产管理系统在各行业的应用越来越普及,固定资产管理系统作为当今主流的企业固定资产信息化管理模式,能够对企业固定资产进行有效管理并提升企业的管理水平.对于固 ...
- 创建线程池的四种方式_创建线程到底有几种方式?
很多时候,在项目中使用线程的情况很少,导致很多人只停想起最常见的两种创建线程的方法,即继承Thread类和实现Runnable接口. 而网络上大家有人认为是三种实现方式,也有人认为是四种实现,下面我们 ...
- 手动创建线程池 效果会更好_创建更好的,可访问的焦点效果
手动创建线程池 效果会更好 Most browsers has their own default, outline style for the :focus psuedo-class. 大多数浏览器 ...
最新文章
- 从CPU缓存看缓存的套路
- C# WinForm控件、自定义控件整理(大全)
- SpringBoot_入门-微服务简介
- python用户输入若干个分数_编写一个程序,要求用户输入五个测试分数。与字母grad对应...
- fastreport 打印两个list_Smaller And Smarter Python数据结构:合并两个有序链表
- 1.0jpa 2.0_EasyCriteria 2.0 – JPA标准应该很容易
- Cosmos发起提案计划申请资助实施ATOM全面营销计划
- OpenCV中的图像插值示例
- 阶段3 2.Spring_06.Spring的新注解_8 spring整合junit完成
- 单片机-节日彩灯控制器
- 怎么能防止网站被注入eval(base64_decode这种类型的木马?
- 银行管理--合规管理(基础概念)
- tv端h5_最新版H5双端影视APP源码
- 从零开始安卓端相机功能开发(一)了解用什么去开发以及流程
- 飞思卡尔imx7 html5,【经验分享】飞思卡尔IMX6处理器的GPIO配置方式
- 为什么用了 DDD 以后,代码更难懂了?
- Prim算法java实现
- 无线自组网AODV路由机制matlab仿真
- Oracle——单列函数,多表连接
- 基于云桌面的外部设备重定向技术调研
热门文章
- 笔记本 cpu 参数
- 实体与属性间的划分原则
- linux无法访问443端口,linux – 为什么我无法在Ubuntu上ping端口443?
- 清华大学《操作系统》(十八):管程于信号量
- android中资源文件的两种访问方式,在android开发中进行数据存储与访问的多种方式介绍...
- 哈希表思路图解和代码实现
- Django中使用ajax技术概述
- Django初次体验
- Linux中python2和python3的pip设置 及清华安装源
- java怎样写入五个人的成绩_用java输入5个学员姓名和分数,显示分数最高的学员姓名和分数?...