码界工坊

htykm.cn
人生若只如初见

四种实现java多线程方式介绍

  1、实现Runnable接口创建线程

  由于Java是单继承机制,如果自己的类已经继承自另一个类,则无法再直接继承Thread类,此时,可以通过实现Runnable接口来实现多线程。

  实现Runnable接口并实现其中的run方法,然后通过构造Thread实例,传入Runnable实现类,然后调用Thread的start方法即可开启一个新线程。

  2、继承Thread类创建线程

  Thread类本质上也是实现了Runnable接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过Thread类的start()实例方法。

  start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程比较简单,通过继承Thread类并复写run()方法,就可以启动新线程并执行自己定义的run()方法。

  3、使用ExecutorService、Callable、Future实现有返回结果的线程(线程池方式)

  ExecutorService、Callable、Future三个接口都是属于Executor框架。可返回值的任务必须实现Callable接口。通过ExecutorService执行Callable任务后,可以获取到一个Future的对象,在该对象上调用get()就可以获取到Callable任务返回的结果了。

  4、实现Callable接口通过FutureTask包装器来创建Thread线程

  首先需要一个实现Callable接口的实例,然后实现该接口的唯一方法call逻辑,接着把Callable实例包装成FutureTask传递给Thread实例启动新线程。

  FutureTask本质上也实现了Runnable接口,所以同样可以用来构造Thread实例。

  以上就是四种实现java多线程方式介绍的内容。

未经允许不得转载 » 本文链接:http://htykm.cn/html/584e4299373.html

推荐文章

  • CentOS readdir如何显示文件所有者

    在 CentOS 系统中,你可以使用 ls命令来显示目录中的文件及其所有者。为了显示文件所有者,你可以使用 -l选项长格式)来显示详细信息。下面是一个示例:ls -l /path/to/directo ...

  • Elementor和SeedProd哪个比较好?功能有哪些区别

    Elementor和SeedProd是什么意思?Elementor和SeedProd都是比较受欢迎的,是WordPress页面插件,可以拖放元素来搭建网站页面,Elementor有免费和付费的两个版本 ...

  • 什么是443端口?443端口是干嘛的?

    众所周知,互联网时代,计算机都会通过某一个特定的通道来进行信息的传输,这个就是端口。例如端口20,端口21,端口80,端口443,端口465等。而不同的端口有不同的作用,下面主要为大家介绍什么是443 ...

  • 商标和品牌是什么关系?商标和品牌的区别有哪些?

    商标和品牌是什么关系?很多人认为商标就是品牌,品牌就是商标,其实品牌和商标是两种不同性质的概念,下面我们来详解一下商标和品牌的区别有哪些?(1)商标是品牌的一部分商标是品牌中的标志和名称部分,品牌不仅 ...

  • Ubuntu Node.js版本怎么选

    在Ubuntu上选择Node.js版本时,你可以考虑以下几个因素:最新LTS版本推荐理由:最新LTS长期支持)版本提供了最佳的稳定性和安全性。安装命令:可以参考官方文档或使用nvm安装最新LTS版本。 ...

  • cpu占用率过高是什么原因?

    cpu占用率过高是什么原因?我们在使用电脑的时候,当电脑CPU占用率过高,会感觉到电脑变的非常卡。操作电脑很久都不会有反应,严重的话直接死机。那么有哪些原因会导致cpu占用率过高?下面本篇文章就来带大 ...

  • AE和PR是什么意思?AE和PR区别有哪些?

    AE和PR是什么意思?在了解AE和PR区别之前,我们先了解下AE和PR是什么意思?AE和PR是两款软件,有着功能的差别,都是对视频进行二次编辑处理,下面来介绍一下AE和PR区别。一:AE和PR是什么意 ...

  • 《阿凡达2》预售票房破亿

    近日消息,据数据显示,统计时间截至12月10日12时,12月9日全国营业影院8440家,全国影院营业率67.9%。截至12月10日18时55分,影片《阿凡达:水之道》(下称《阿凡达2》)预售总票房突破 ...