1、继承Thread类:

public class ThreadTest {static class ThreadA extends Thread {@Overridepublic void run() {System.out.println(Thread.currentThread());}}public static void main(String[] args) {ThreadA a1 = new ThreadA();ThreadA a2 = new ThreadA();a1.start();a2.start();}}

2、实现Runnable接口:无返回值,不用抛异常

public class RunnableTest {static class ThreadRunnable implements Runnable {@Overridepublic void run() {System.out.println(Thread.currentThread());}}public static void main(String[] args) {Thread t1 = new Thread(new ThreadRunnable());Thread t2 = new Thread(new ThreadRunnable());t1.start();t2.start();}}

3、实现Callable接口:有返回值,需要抛异常

public class CallableTest {static class ThreadCall implements Callable<String> {@Overridepublic String call() throws Exception {System.out.println(Thread.currentThread());return "ss";}}public static void main(String[] args) throws Exception {FutureTask<String> ft = new FutureTask<>(new ThreadCall());System.out.println(ft.get());Thread t = new Thread(ft);t.start();}}

4、通过线程池创建线程:

4.1 Executor

public class ExecutorTest {private static ExecutorService es = Executors.newCachedThreadPool();static class ThreadExecutor extends Thread {@Overridepublic void run() {System.out.println(Thread.currentThread());}}public static void main(String[] args) {es.execute(new ThreadExecutor());es.execute(new ThreadExecutor());}}

4.2 ThreadPoolExcutor

ThreadPoolExcutor_风过茶易凉的博客-CSDN博客_threadpoolexcutor

小总结:线程类只是实现了Runnable或者Callable接口,还可以继承其他类。这种方式下,多个线程可以共享一个target对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU、代码和数据分开,形成清晰的模型,较好的体现了面向对象的思想。

Java多线程实现的四种方式相关推荐

  1. java实现线程的方式_java多线程实现的四种方式

    java多线程实现的四种方式1.继承Thread类,重写run方法(其实Thread类本身也实现了Runnable接口) 2.实现Runnable接口,重写run方法 3.实现Callable接口,重 ...

  2. Java中创建对象的四种方式

    为什么80%的码农都做不了架构师?>>>    Java中创建对象的四种方式 (1) 用new语句创建对象,这是最常见的创建对象的方法.    (2) 运用反射手段,调用java.l ...

  3. Linux C++多线程同步的四种方式

    目录 一.互斥锁 二.条件变量 三.读写锁 原文链接:Linux C++多线程同步的四种方式(非常详细)_Y先森0.0-CSDN博客 背景问题:在特定的应用场景下,多线程不进行同步会造成什么问题? 通 ...

  4. java多线程同步的四种方法_java中实现多线程的两种方法

    java多线程有几种实现方法,都是什么?同步有几种实java中多线程的实现方法有两种:1.直接继承thread类:2.实现runnable接口:同步的实现方法有五种:1.同步方法:2.同步代码块:3. ...

  5. Java 创建类的四种方式

    Java 创建类的四种方式 对于上学期已经学习过c++的同学,是不是对另一大编程语言产生了浓厚的兴趣,对于c++的面向对象编程,又和java的面向变量有何区别,下面我们从java四种创建对象来说起. ...

  6. java怎样输入五个数字打一成语,Java的线程安全四种方式五个等级[1]

    Java的线程安全四种方式五个等级[1]以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 四种方式 sychronized ...

  7. 多线程实现的四种方式

    Java多线程实现方式主要有四种:继承Thread类.实现Runnable接口.实现Callable接口通过FutureTask包装器来创建Thread线程.使用ExecutorService.Cal ...

  8. photon四种同步方式_【Linux】多线程同步的四种方式

    背景问题:在特定的应用场景下,多线程不进行同步会造成什么问题? 通过多线程模拟多窗口售票为例: #include #include#include#include#include#include us ...

  9. java中创建对象的方式有哪些,Java中创建对象的四种方式

    四种方式: http://wenku.baidu.com/link?url=mv6VbMd3d-aCkbGMhn6rbLwFbef7v60nRbyA-thP6Y7hqtjiv0K0_kdtfOWaUj ...

最新文章

  1. python怎么输出图像测试_python pyautogui-不检测图像时的位置打印问题
  2. Android7.0新特性、新功能
  3. ​NVIDIA针对数据不充分数据集进行生成改进,大幅提高CIFAR-10数据生成
  4. Page_Load的问题
  5. 经典的K-means聚类算法
  6. Intel 64/x86_64/x86/IA-32处理器标志寄存器详解(4) - 32位EFLAGS - 状态标志与控制标志
  7. 这种事情干不得!微信已动手处理4.5万个公众号
  8. python 制作动画片_cocos2d from python Animation 动画片的实现
  9. 优化算法学习(LM算法)
  10. 多智能体(MARL)强化学习与博弈论
  11. noi题库 1.7编程基础之字符串 :题解大礼包20180723
  12. python应该怎么样自学_Python该如何自学?
  13. 字节跳动实习生转正工资_【有效】字节跳动(头条/抖音)日常实习生内推
  14. 【学习笔记】seckill-秒杀项目--(9)接口优化
  15. 【codeforces】【比赛题解】#960 CF Round #474 (Div. 1 + Div. 2, combined)
  16. Win10沙盒功能,系统自带免费免安装
  17. ArcGIS水文分析实战教程(15)库容和淹没区计算
  18. Linux远程桌面的设计总结,windows / Linux 远程桌面访问全面总结 / 共享文件
  19. MRAM关键工艺步骤
  20. 二进制十进制互换代码实现

热门文章

  1. 2021-05-27 右下角广告弹出框
  2. 机器学习当道,还在使用基于词典的文本挖掘方法么,过时啦! 1
  3. 关联分析中的支持度、可信度和提升度
  4. [电子设计大赛]射频宽带放大器设计报告
  5. SKY65162-70LF射频功率放大器
  6. 廉价DSO Hantek 6022BL说明书上没有的内容
  7. CISA考试百分百通过?
  8. MATLAB读ArcGIS输出的dbf文件
  9. uni-app使用uni-ui
  10. 最新手写图片爬虫(针对千库网和一个福利网站)