Java多线程实现的四种方式
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多线程实现的四种方式相关推荐
- java实现线程的方式_java多线程实现的四种方式
java多线程实现的四种方式1.继承Thread类,重写run方法(其实Thread类本身也实现了Runnable接口) 2.实现Runnable接口,重写run方法 3.实现Callable接口,重 ...
- Java中创建对象的四种方式
为什么80%的码农都做不了架构师?>>> Java中创建对象的四种方式 (1) 用new语句创建对象,这是最常见的创建对象的方法. (2) 运用反射手段,调用java.l ...
- Linux C++多线程同步的四种方式
目录 一.互斥锁 二.条件变量 三.读写锁 原文链接:Linux C++多线程同步的四种方式(非常详细)_Y先森0.0-CSDN博客 背景问题:在特定的应用场景下,多线程不进行同步会造成什么问题? 通 ...
- java多线程同步的四种方法_java中实现多线程的两种方法
java多线程有几种实现方法,都是什么?同步有几种实java中多线程的实现方法有两种:1.直接继承thread类:2.实现runnable接口:同步的实现方法有五种:1.同步方法:2.同步代码块:3. ...
- Java 创建类的四种方式
Java 创建类的四种方式 对于上学期已经学习过c++的同学,是不是对另一大编程语言产生了浓厚的兴趣,对于c++的面向对象编程,又和java的面向变量有何区别,下面我们从java四种创建对象来说起. ...
- java怎样输入五个数字打一成语,Java的线程安全四种方式五个等级[1]
Java的线程安全四种方式五个等级[1]以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 四种方式 sychronized ...
- 多线程实现的四种方式
Java多线程实现方式主要有四种:继承Thread类.实现Runnable接口.实现Callable接口通过FutureTask包装器来创建Thread线程.使用ExecutorService.Cal ...
- photon四种同步方式_【Linux】多线程同步的四种方式
背景问题:在特定的应用场景下,多线程不进行同步会造成什么问题? 通过多线程模拟多窗口售票为例: #include #include#include#include#include#include us ...
- java中创建对象的方式有哪些,Java中创建对象的四种方式
四种方式: http://wenku.baidu.com/link?url=mv6VbMd3d-aCkbGMhn6rbLwFbef7v60nRbyA-thP6Y7hqtjiv0K0_kdtfOWaUj ...
最新文章
- python怎么输出图像测试_python pyautogui-不检测图像时的位置打印问题
- Android7.0新特性、新功能
- ​NVIDIA针对数据不充分数据集进行生成改进,大幅提高CIFAR-10数据生成
- Page_Load的问题
- 经典的K-means聚类算法
- Intel 64/x86_64/x86/IA-32处理器标志寄存器详解(4) - 32位EFLAGS - 状态标志与控制标志
- 这种事情干不得!微信已动手处理4.5万个公众号
- python 制作动画片_cocos2d from python Animation 动画片的实现
- 优化算法学习(LM算法)
- 多智能体(MARL)强化学习与博弈论
- noi题库 1.7编程基础之字符串 :题解大礼包20180723
- python应该怎么样自学_Python该如何自学?
- 字节跳动实习生转正工资_【有效】字节跳动(头条/抖音)日常实习生内推
- 【学习笔记】seckill-秒杀项目--(9)接口优化
- 【codeforces】【比赛题解】#960 CF Round #474 (Div. 1 + Div. 2, combined)
- Win10沙盒功能,系统自带免费免安装
- ArcGIS水文分析实战教程(15)库容和淹没区计算
- Linux远程桌面的设计总结,windows / Linux 远程桌面访问全面总结 / 共享文件
- MRAM关键工艺步骤
- 二进制十进制互换代码实现