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 方式创建的新线程"); } }
继承Thread类
通过继承Thread类,重写run()方法,随后实例调用start()方法启动
public class ThreadTest extends Thread{ @Override public void run() { System.out.println("Thread 方式创建的线程"); } public static void main(String[] args) { new ThreadTest().start(); } }
对于第一种方式,其本质就是调用Thread类的构造函数,传入Ruanble接口的实现类
因为Runable接口是一个FunctionalInterface, 因此也可以使用Lambda表达式简写为
public static void main(String[] args) { new Thread(() -> { System.out.println("新线程"); }).start(); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Java使用Thread创建多线程并启动操作示例
本文实例讲述了Java使用Thread创建多线程并启动操作.分享给大家供大家参考,具体如下: 按照教程实现了一个单线程的创建,但是单线程的创建于启动并不是很有实用价值的.毕竟直接在main方法中放着相关的执行操作本身也就是一种单线程的实现.接下来在之前用过的代码基础上稍作修改,形成如下代码: class ThreadDemo extends Thread { ThreadDemo(){}; ThreadDemo(String szName) { super(szName); } public v
-
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多线程中线程的两种创建方式及比较代码示例
1.线程的概念:线程(thread)是指一个任务从头至尾的执行流,线程提供一个运行任务的机制,对于java而言,一个程序中可以并发的执行多个线程,这些线程可以在多处理器系统上同时运行.当程序作为一个应用程序运行时,java解释器为main()方法启动一个线程. 2.并行与并发: (1)并发:在单处理器系统中,多个线程共享CPU时间,而操作系统负责调度及分配资源给它们. (2)并行:在多处理器系统中,多个处理器可以同时运行多个线程,这些线程在同一时间可以同时运行,而不同于并发,只能多个线程共享CP
-
java 线程创建多线程详解
Java 线程类也是一个 object 类,它的实例都继承自 java.lang.Thread 或其子类. 可以用如下方式用 java 中创建一个线程,执行该线程可以调用该线程的 start()方法: Tread thread = new Thread(); thread.start(); 在上面的例子中,我们并没有为线程编写运行代码,因此调用该方法后线程就终止了. 编写线程运行时执行的代码有两种方式:一种是创建 Thread 子类的一个实例并重写 run 方法,第二种是创建类的时候实现 Run
-
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创建多线程的两种方式对比
采用继承Thead类实现多线程: 优势:编写简单,如果需要访问当前线程,只需使用this即可,无需使用Thead.currentThread()方法. 劣势:因为这种线程类已经继承了Thead类,所以不能再继承其它类. 示例代码: 复制代码 代码如下: package org.frzh.thread; public class FirstThread extends Thread{ private int i; //重写run方法,run方法的方法体就是线程执
-
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多线程处理执行solr创建索引示例
复制代码 代码如下: public class SolrIndexer implements Indexer, Searcher, DisposableBean { //~ Static fields/initializers ============================================= static final Logger logger = LoggerFactory.getLogger(SolrIndexer.class); private static fi
-
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使用多线程异步执行批量更新操作方法
写在前面: 相信不少开发者在遇到项目对数据进行批量操作的时候,都会有不少的烦恼,尤其是针对数据量极大的情况下,效率问题就直接提上了菜板.因此,开多线程来执行批量任务是十分重要的一种批量操作思路,其实这种思路实现起来也十分简单,就拿批量更新的操作举例: 整体流程图 步骤 获取需要进行批量更新的大集合A,对大集合进行拆分操作,分成N个小集合A-1 ~ A-N . 开启线程池,针对集合的大小进行调参,对小集合进行批量更新操作. 对流程进行控制,控制线程执行顺序. 按照指定大小拆分集合的工具类 impo
-
Java实现一个简单的定时器代码解析
定时的功能我们在手机上见得比较多,比如定时清理垃圾,闹钟,等等.定时功能在java中主要使用的就是Timer对象,他在内部使用的就是多线程的技术. Time类主要负责完成定时计划任务的功能,就是在指定的时间的开始执行某个任务. Timer类的作用是设置计划任务,而封装任务内容的类是TimerTask类.此类是一个抽象类,继承需要实现一个run方法. 利用java制作定时器比较简单,有现成的接口帮助实现.java中制作定时器使用的是Timer和TimerTask,是util包的.java.util
-
Java创建多线程的几种方式实现
1.继承Thread类,重写run()方法 //方式1 package cn.itcats.thread.Test1; public class Demo1 extends Thread{ //重写的是父类Thread的run() public void run() { System.out.println(getName()+"is running..."); } public static void main(String[] args) { Demo1 demo1 = new D
-
Java编程多线程之共享数据代码详解
本文主要总结线程共享数据的相关知识,主要包括两方面:一是某个线程内如何共享数据,保证各个线程的数据不交叉:一是多个线程间如何共享数据,保证数据的一致性. 线程范围内共享数据 自己实现的话,是定义一个Map,线程为键,数据为值,表中的每一项即是为每个线程准备的数据,这样在一个线程中数据是一致的. 例子 package com.iot.thread; import java.util.HashMap; import java.util.Map; import java.util.Random; /*
-
java避免死锁的常见方法代码解析
死锁 索是一个非常有用的工具,运用场景非常多,因为它使用起来非常简单,而且易于理解.但同时它也会带来一些困扰,那就是可能会引起死锁,一旦产生死锁,就会造成系统功能不可用.让我们先来看一段代码,这段代码会引起死锁,使线程 thread_1 和线程 thread_2 互相等待对方释放锁. package thread; public class DeadLockDemo { private static String A = "A"; private static String B = &
-
java springmvc 注册中央调度器代码解析
这篇文章主要介绍了java springmvc 注册中央调度器代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在WEB-INF下的web.xml中配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="htt
-
详解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创建多线程局域网聊天室实例
局域网聊天室 在学习了一个学期的java以后,觉得java真是博大精深,彻底放弃了因为c++而轻视java的心态,搞了一个多线程的聊天室,熟悉了一下服务器和客户机的操作. 1.TCP 要实现局域网连接,就必须知道信息传输的原理. 在局域网里面传输的信息都是以包的形式,我使用的TCP包传输数据,TCP包里面封装了IP报文. 下面这句话就是通过一个静态IPV4协议的类得到一个服务器的IP地址. address = InetAddress.getByName("192.168.43.86")
-
C#多线程异步执行和跨线程访问控件Helper
一.工具类代码 public class TaskHelper { #region 多线程操作 /// <summary> /// 功能描述:多线程执行方法,方法无参数,无返回值 /// </summary> /// <param name="func">方法,如果方法中调用了控件,请使用 ThreadInvokerControl(() => { 您的操作})进行包括</param> /// <param name="
随机推荐
- dos命令介绍
- iOS微信支付开发案例
- 详解iOS中多线程app开发的GCD队列的使用
- ASP.NET Core静态文件使用教程(9)
- PHP-redis中文文档介绍
- escape unescape的php下的实现方法
- php使用glob函数遍历文件和目录详解
- 使用upstart把nodejs应用封装为系统服务实例
- js点击列表文字对应该行显示背景颜色的实现代码
- jquery实现邮箱自动补全功能示例分享
- 批处理数值排序问题
- python处理按钮消息的实例详解
- 分享一个asp.net pager分页控件
- 详解CentOS阿里云云服务器硬盘分区及挂载
- 第三方开源Android TickPlusDrawable状态可以通过动画切换的按钮
- 如何修改 mac地址的方法
- Java网络编程之TCP通信完整代码示例
- IDEA Debug模式下改变各类型变量值的方法
- jquery插件开发模式实例详解
- spring 整合JDBC和AOP事务的方法