一篇文中细看Java多线程的创建方式
前言
Java现在有四种创建的方式:继承Threa类、实现Runnable接口、实现Callable接口、线程池
Thread、Runnable都在java.lang包下;Callable、线程池都在java.util.concurrent包下
1.继承Thread类,重写run方法
创建一个类继承Thread类,并重写run();因为run()是线程具体执行的方法。
在测试类或者main()创建Thread对象,并调用start()启动线程
备注:start()是启动线程,run()是线程执行的业务方法
2.实现Runnable接口,通过参数方式创建线程
创建一个类实现Runnable接口并重写run()
在测试类或者main()创建Thread对象,并传入该接口实现类对象,并调用start()启动线程
3.实现Callable接口,通过FutureTask来创建线程
创建一个类实现Callable接口,重写call()call()支持有返回值和抛异常Callable支持泛型
传入Callable对象,创建FutureFask类
备注:FutureTask实现了Runnable接口;FutureTask.get()可以获取call()返回值
创建Thread对象,并调用start方法启动线程
4.通过线程池方式创建线程
创建一个类实现Runnable或者Callable接口,并重写对应方法
创建一个线程池对象,并执行execute方法启动线程
备注:可以通过线程池方式管理线程个数等配置信息
几种创建方式想必大家都已了解,但在实际开发中大多数都是以线程池来操作线程的;
线程池优势:提升响应速度,提高资源重用率,便于管理
线程的生命周期
总结
到此这篇关于一篇文中细看Java多线程的创建方式的文章就介绍到这了,更多相关Java多线程创建方式内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Java使用Thread创建多线程并启动操作示例
本文实例讲述了Java使用Thread创建多线程并启动操作.分享给大家供大家参考,具体如下: 按照教程实现了一个单线程的创建,但是单线程的创建于启动并不是很有实用价值的.毕竟直接在main方法中放着相关的执行操作本身也就是一种单线程的实现.接下来在之前用过的代码基础上稍作修改,形成如下代码: class ThreadDemo extends Thread { ThreadDemo(){}; ThreadDemo(String szName) { super(szName); } public v
-
Java创建多线程异步执行实现代码解析
实现Runable接口 通过实现Runable接口中的run()方法 public class ThreadTest implements Runnable { public static void main(String[] args) { Thread thread = new Thread(new ThreadTest()); thread.start(); } @Override public void run() { System.out.println("Runable 方式创建的新
-
java多线程编程之使用thread类创建线程
在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例.Thread类的构造方法被重载了八次,构造方法如下: 复制代码 代码如下: public Thread( );public Thread(Runnable target);public Thread(String name);public Thread(Ru
-
java 线程创建多线程详解
Java 线程类也是一个 object 类,它的实例都继承自 java.lang.Thread 或其子类. 可以用如下方式用 java 中创建一个线程,执行该线程可以调用该线程的 start()方法: Tread thread = new Thread(); thread.start(); 在上面的例子中,我们并没有为线程编写运行代码,因此调用该方法后线程就终止了. 编写线程运行时执行的代码有两种方式:一种是创建 Thread 子类的一个实例并重写 run 方法,第二种是创建类的时候实现 Run
-
Java多线程中线程的两种创建方式及比较代码示例
1.线程的概念:线程(thread)是指一个任务从头至尾的执行流,线程提供一个运行任务的机制,对于java而言,一个程序中可以并发的执行多个线程,这些线程可以在多处理器系统上同时运行.当程序作为一个应用程序运行时,java解释器为main()方法启动一个线程. 2.并行与并发: (1)并发:在单处理器系统中,多个线程共享CPU时间,而操作系统负责调度及分配资源给它们. (2)并行:在多处理器系统中,多个处理器可以同时运行多个线程,这些线程在同一时间可以同时运行,而不同于并发,只能多个线程共享CP
-
Java多线程——之一创建线程的四种方法
1.实现Runnable接口,重载run(),无返回值 package thread; public class ThreadRunnable implements Runnable { public void run() { for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } } } package thread; public clas
-
详解Java创建多线程的四种方式以及优缺点
java有以下四种创建多线程的方式 1:继承Thread类创建线程 2:实现Runnable接口创建线程 3:使用Callable和FutureTask创建线程 4:使用线程池,例如用Executor框架创建线程 DEMO代码 package thread; import java.util.concurrent.*; public class ThreadTest { public static void main(String[] args) throws ExecutionExceptio
-
java多线程处理执行solr创建索引示例
复制代码 代码如下: public class SolrIndexer implements Indexer, Searcher, DisposableBean { //~ Static fields/initializers ============================================= static final Logger logger = LoggerFactory.getLogger(SolrIndexer.class); private static fi
-
java多线程编程之使用runnable接口创建线程
1.将实现Runnable接口的类实例化. 2.建立一个Thread对象,并将第一步实例化后的对象作为参数传入Thread类的构造方法. 最后通过Thread类的start方法建立线程.下面的代码演示了如何使用Runnable接口来创建线程: package mythread;public class MyRunnable implements Runnable{ public void run() { System.out.println(Thread.currentThread().get
-
Java创建多线程的两种方式对比
采用继承Thead类实现多线程: 优势:编写简单,如果需要访问当前线程,只需使用this即可,无需使用Thead.currentThread()方法. 劣势:因为这种线程类已经继承了Thead类,所以不能再继承其它类. 示例代码: 复制代码 代码如下: package org.frzh.thread; public class FirstThread extends Thread{ private int i; //重写run方法,run方法的方法体就是线程执
随机推荐
- 详解在AngularJS的controller外部直接获取$scope
- ASP.NET MVC 使用Bootstrap的方法
- input、button的不同type值在ajax提交表单时导致的陷阱
- Javascript 面向对象 (声明篇)
- JS实现适合于后台使用的动画折叠菜单效果
- Win2008,windows2008序列号查看器
- apache日志文件详解和实用分析命令
- java 中newInstance()方法和new关键字的区别
- Python使用MD5加密字符串示例
- PowerShell入门教程之访问.Net程序集、COM和WMI实例
- C语言 数据结构中求解迷宫问题实现方法
- JSP 获取spring容器中bean的两种方法总结
- mysql 日期和时间格式转换实现语句
- 小技巧:把你的文件藏在图片里
- C#线程定义和使用方法详解
- JavaScript导出Excel实例详解
- js在Firefox与IE中对DOM对像的引用的比较
- java开发微信分享接口的步骤
- Vue传参一箩筐(页面、组件)
- django admin.py 外键,反向查询的实例