多线程start和run方法有什么区别?
一、启动方式
二、执行时机
start()方法:调用start()方法后,会立即返回,并在新线程中异步执行run()方法中的代码。run()方法:直接调用run()方法时,会在当前线程中同步执行run()方法中的代码,直到run()方法执行完毕后才会继续执行后续代码。三、线程调度
start()方法:启动新线程后,线程调度器会根据系统的调度策略分配CPU时间片,并在多个线程之间切换执行。run()方法:直接调用run()方法时,不会进行线程调度,代码在当前线程中按顺序执行,没有多线程的效果。四、并发性
start()方法:启动新线程后,可以实现多个线程的并发执行,提高系统的吞吐量和响应性能。run()方法:直接调用run()方法时,代码在单个线程中串行执行,没有并发性,不会提高系统的处理能力。五、异常处理
start()方法:启动新线程后,如果在run()方法中发生异常而没有进行处理,异常会被线程捕获,并交由线程的UncaughtExceptionHandler处理。run()方法:直接调用run()方法时,异常会被普通的try-catch块捕获,异常处理与普通方法调用相同。六、继承Thread类和实现Runnable接口
start()方法:如果使用继承Thread类创建线程,通过调用start()方法启动线程。run()方法:如果使用实现Runnable接口创建线程,需要将Runnable对象传递给Thread类的构造函数,并在Thread对象上调用start()方法来启动线程。七、单继承限制
start()方法:由于Java是单继承机制,如果已经继承了其他类,就无法再继承Thread类,限制了使用start()方法创建线程的灵活性。run()方法:通过实现Runnable接口创建线程可以避免单继承限制,使得代码更具扩展性和可维护性。八、资源分配
start()方法:启动线程后,每个线程都会有自己的程序计数器、虚拟机栈、本地方法栈和堆内存等资源。run()方法:直接调用run()方法时,所有线程共享调用该方法的线程的资源,没有为新线程分配额外的资源。延伸阅读
多线程start和run方法
创建线程对象:首先需要创建一个Thread类的对象,可以通过直接实例化Thread类或者继承Thread类创建自定义的线程类。重写run()方法:在创建线程对象后,需要重写Thread类中的run()方法。run()方法是线程的主体,包含了线程的具体执行逻辑。调用start()方法:一旦线程对象创建并且run()方法被重写,就可以调用线程对象的start()方法来启动线程。start()方法会在新的线程上调度run()方法的执行。线程状态转换:调用start()方法后,线程会进入就绪状态,并等待系统调度来执行run()方法。当系统调度到该线程时,它会进入运行状态,并开始执行run()方法中的代码。
猜你喜欢LIKE
相关推荐HOT
更多>>
WordPress与MySQL数据库之间是什么关系?
一、WordPress与MySQL数据库之间是什么关系说的简单点,wordpress或者类似的网站程序就类似一辆BUS,而数据库仅仅是一个记录系统。这两BUS长的...详情>>
2023-10-17 23:19:57
为什么一台电脑可以安装多个SQL Server实例?
一、为什么一台电脑可以安装多个SQL Server实例在SQL Server中,实例与编程的“类和对象”很相似。安装过程可以看作是类,安装过程中创建的实例...详情>>
2023-10-17 22:14:09
memcache缓存的是什么数据又是怎么写入的呢?
一、memcache缓存的是什么数据又是怎么写入的首先明确,memcache是作为高速缓存使用的。那么,到底怎样才能获得高速的响应呢?当然如果是简单处...详情>>
2023-10-17 21:14:39
MySQL InnoDB聚簇索引B+树的阶(m)是怎样决定的?
一、MySQL InnoDB聚簇索引B+树的阶(m)是怎样决定的1、页的大小(Page Size)B+树是以固定大小的页(Page)为单位进行存储和操作的,页是数据库...详情>>
2023-10-17 18:07:35热门推荐
什么是关联子查询,关联子查询语法有什么好处?
沸WordPress与MySQL数据库之间是什么关系?
热linux下连接oracle数据库有什么好用的工具?
热为什么一台电脑可以安装多个SQL Server实例?
新像爱奇艺、优酷等视频网站的数据库是怎么设计的?
memcache缓存的是什么数据又是怎么写入的呢?
怎样在数据库中实现一对多的关系怎样存储图片和视频?
access数据库怎么样通过宏命令实现打开数据库后自动启动窗体?
怎么向MySQL导入数据的同时在主键列自动生成uuid?
SQLite的优缺点?
SQL Sever2000的数据库怎么附加到2012的数据库上?
MySQL InnoDB聚簇索引B+树的阶(m)是怎样决定的?
postgre的bpchar字段类型相当于MySQL的什么类型?
Android适配你需要学习哪些?
技术干货






