Java thread run() start() 是干什么的以及区别

Wesley13
• 阅读 640

Java  thread  run()  start() 是干什么的?为什么一调他们就开始运行里面的方法了?以及区别?

1.这个属于线程的同步机制问题,也就是线程安全问题,实际开发中用到多线程的例子很多,比如说:银行排号、火车站买票等,就是很多机器同时访问共享数据的时候就是这个了。

2.线程启动之后(被调之后),会运行被覆盖的run方法。

3.先说用thread.run()来启动线程,会顺序执行,run启动一条线程之后将这条线程走完之后,才执行下面的run,想想火车站排票?要是用run就等于一条长蛇队了。

再说用thread.start来启动线程,这个才是真正实现了多线程运行,thread.start()不用等待被覆盖的run执行完也可以直接继续执行下面的代码,线程处于就绪状态,交替执行直到结束。

这个是继承了thread的一个类,也算是线程类了吧。

Java  thread  run() start() 是干什么的以及区别

这个是调用run()之后的结果:

Java  thread  run() start() 是干什么的以及区别

这个是调用start()的结果:

Java  thread  run() start() 是干什么的以及区别

好了,start()和run()的区别就是这个样子了。

点赞
收藏
评论区
推荐文章
wanQQ wanQQ
2年前
Java学习 Day01 多线程
Java学习Day01多线程Java多线程实现方式有2种1.继承Thread类,重写run方法案例测试类Thread01Javapackagetop.wanqq.thread;/@authorwanqq/publicclassThread01extendsThread@Overridepubli
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java 多线程
创建线程的4种方式1、继承Thread类,复写run方法,run方法中为线程需要执行的逻辑部分,而启动线程调用start方法。小示例见代码,通过Thread.currentThread().getName()可以获得当前线程名称publicclassMyThreadextendsThread{private
Wesley13 Wesley13
3年前
java多线程和异步回调
   在实际开发过程中遇到的多线程情况不多,但是在生产环境中多线程是最基本的情况,java面试时也会考到,所以看看多线程的知识还是很有必要的。 Thread,Runnable,Callable,Future,FutureTask,Executors这是java常见的接口和类。  thread.run():线程具体要执行的代码,thread.jo
Wesley13 Wesley13
3年前
java多线程方法笔记【上】
刚开始工作,主要使用c写服务器,不过偶尔也会用到java和python,还是学一学吧。先从java多线程开始。java多线程的基本方法://线程开始运行 public void start( );  //线程运行的方法runpublic void run( );  //线程休眠,单位毫秒 
Wesley13 Wesley13
3年前
java多线程 run start 区别
了解runstart的区别首先需要了解Thread类start方法:publicsynchronizedvoidstart(){/threadStatus线程只能启动一次/if(threadStat
Wesley13 Wesley13
3年前
java多线程相关
Runnablerunnable是线程实现的一种方式(接口实现),它只有一个run()函数,用于将耗时操作写在其中,该函数没有返回值。然后使用某个线程去执行该runnable的实现运行多线程程序,Thread类在调用start()函数后就是执行的是runnable的run()函数。runnable的声明如下:publicinterfac
Wesley13 Wesley13
3年前
Java的编程逻辑
1、run()和start()的区别2、线程的基本属性和方法1.id:一个递增的整数,每创建一个线程就加一2.name3.优先级:从1到10,默认为5,会映射到系统中的优先级。数字越大,要优先级越高4.状态: NEW:还没调用start RUNABLE:正在执行run或者正在等待cup分配
Wesley13 Wesley13
3年前
Java面试系列
实现多线程的方式继承Thread类,重写run方法,调用start方法启动线程实现Runnable接口,重写run方法,调用start方法启动线程实现Callable接口,重写call方法,并用FutureTask包装,在newThread中传入FutureTask,然后调用start方
小万哥 小万哥
7个月前
深入理解 Java 多线程、Lambda 表达式及线程安全最佳实践
Java线程线程使程序能够通过同时执行多个任务而更有效地运行。线程可用于在不中断主程序的情况下在后台执行复杂的任务。创建线程有两种创建线程的方式。1.扩展Thread类可以通过扩展Thread类并覆盖其run()方法来创建线程:javapublicclas