java启动线程的3种方式对比分析
作者:野比大雄-蜗牛 发布时间:2023-12-17 08:38:41
标签:java,启动线程
本文实例为大家分享了java启动线程的方法,供大家参考,具体内容如下
1.继承Thread
public class java_thread extends Thread{
public static void main(String args[])
{
(new java_thread()).run();
System.out.println("main thread run ");
}
public synchronized void run()
{
System.out.println("sub thread run ");
}
}
2.实现Runnable接口
public class java_thread implements Runnable{
public static void main(String args[])
{
(new Thread(new java_thread())).start();
System.out.println("main thread run ");
}
public void run()
{
System.out.println("sub thread run ");
}
}
3.直接在函数体使用
void java_thread()
{
Thread t = new Thread(new Runnable(){
public void run(){
mSoundPoolMap.put(index, mSoundPool.load(filePath, index));
getThis().LoadMediaComplete();
}});
t.start();
}
4.比较:
实现Runnable接口优势:
1)适合多个相同的程序代码的线程去处理同一个资源
2)可以避免Java中的单继承的限制
3)增加程序的健壮性,代码可以被多个线程共享,代码和数据独立。
继承Thread类优势:
1)可以将线程类抽象出来,当需要使用抽象工厂模式设计时。
2)多线程同步
在函数体使用优势
1)无需继承thread或者实现Runnable,缩小作用域。
0
投稿
猜你喜欢
- 本次内容主要介绍基于Ehcache 3.0来快速实现Spring Boot应用程序的数据缓存功能。在Spring Boot应用程序中,我们可
- Map集合的概述概述:interface Map<K,V> 其中K是键的类型,键是唯一的,不重复。V是值的类型,是可以重复。且每
- 项目中遇到springBoot+docker需要配置不同环境变量的问题,做个简单的总结:1.开发环境ide中启动项目可以通过ide的环境变量
- 本文实例为大家分享了jdk1.7配置教程,供大家参考,具体内容如下第一步:下载jdk1.7下载地址:链接 密码: wrmf第二步:
- 本文实例为大家分享了java二叉查找树的具体代码,供大家参考,具体内容如下package 查找;import edu.princeton.c
- 对于数组来说,我们想要对其中的一个元素进行引用,那就离不开new的使用。大家在学习new的时候,一般是以新建和初始化的身份出现的。如果是用在
- SpringCloudStream配置以下配置摘自《SpringCloud微服务实战》,配置主要包括两大部分:Stream配置(基础配置、通
- OpenFeign介绍一开始,我们使用原生的 DiscoveryClient 发现服务和使用RestTemplate进行服务间调用,然后我们
- 员工管理系统要求如下:通过面向对象的编程思想,实现员工信息的增删改查,存储结构为数组。限定数组长度为100。实现页面:添加员工查找员工修改员
- SpringBoot是什么?SpringBoot是spring家族中微型框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
- 本文实例展示了DevExpress实现GridView当无数据行时提示消息的方法,具体步骤如下:主要功能代码部分如下:/// <sum
- 本文实例讲述了Java中的多态用法。分享给大家供大家参考。具体分析如下:多态,是面向对象的程序设计语言最核心的特征。封装性、继承性都比较简单
- 本文实例讲述了Java数组高级算法与Arrays类常见操作。分享给大家供大家参考,具体如下:冒泡排序冒泡排序原理冒泡排序代码:package
- 为什么需要网关呢?我们知道我们要进入一个服务本身,很明显我们没有特别好的办法,直接输入IP地址+端口号,我们知道这样的做法很糟糕的,这样的做
- 出错信息:Unknown error (0xffffffff)at System.Diagnostics.Process.StartWith
- 一、注解@PostConstruct使用注解@PostConstruct是最常见的一种方式,存在的问题是如果执行的方法耗时过长,会导致项目在
- 前言:项目中我们经常会遇到有时候需要等待其他线程完成任务后,主线程才能执行其他任务,那么我们将如何实现呢?Join 解决方案join 的工作
- 项目背景:在项目中包含两个定时任务,配置信息如下:1、@Scheduled(initialDelay = 1,fixedDelay=1000
- 本文实例讲述了Android ListView的简单应用。分享给大家供大家参考,具体如下:我们今天要讲的内容是Android中ListVie
- 一、Lambda表达式 1.1 函数式编程思想概述在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿