调用start的结果

package TestException;

public class test1 {

public static void main(String[] args) {
// 3:直接创建Thread的子类对象创建线程。
Test2 s= new Test2("张三");
Test2 s1 = new Test2("test");
//调用start(里面会自动去执行run方法中的代码块) 4:调用start方法开启线程并调用线程的任务run方法执行。
s.start();
s1.start();
}

}
//继承Thread 1:定义一个类 继承Thread类。
class Test2 extends Thread {
String name;
Test2(String name){
this.name=name;
}
public void show(){

for(int i=0;i<100;i++){
System.out.println(name+i);
}
}
//重新run方法 2:重写Thread类的run方法。
public void run(){
show();
}

}
结果:

test0
张三0
test1
张三1
test2
张三2
test3
张三3
test4
test5
张三4
test6
test7
test8
test9
张三5
test10
张三6
test11
张三7
张三8
test12
张三9
张三10
张三11
test13
test14
test15
test16
张三12
test17
test18
test19
张三13
test20
张三14
张三15
张三16
张三17
张三18
张三19
张三20
张三21
test21
张三22
张三23
张三24
张三25
test22
张三26
test23
张三27
test24
张三28
test25
张三29
test26
test27
张三30
test28
张三31
test29
张三32
张三33
test30
test31
test32
test33
test34
test35
test36
test37
test38
test39
test40
test41
test42
test43
test44
test45
test46
test47
test48
test49
test50
test51
test52
test53
test54
test55
test56
test57
test58
test59
test60
test61
张三34
test62
张三35
test63
张三36
test64
张三37
张三38
test65
张三39
test66
张三40
test67
张三41
test68
张三42
test69
张三43
test70
张三44
张三45
张三46
test71
张三47
test72
张三48
test73
张三49
test74
张三50
test75
张三51
test76
张三52
test77
张三53
test78
张三54
test79
张三55
test80
张三56
张三57
test81
张三58
test82
张三59
test83
张三60
test84
test85
test86
test87
test88
test89
test90
test91
test92
test93
张三61
张三62
test94
张三63
张三64
张三65
张三66
张三67
张三68
test95
test96
test97
test98
test99
张三69
张三70
张三71
张三72
张三73
张三74
张三75
张三76
张三77
张三78
张三79
张三80
张三81
张三82
张三83
张三84
张三85
张三86
张三87
张三88
张三89
张三90
张三91
张三92
张三93
张三94
张三95
张三96
张三97
张三98
张三99
-----------------------------------
调用run

package TestException;

public class test1 {

public static void main(String[] args) {
// 3:直接创建Thread的子类对象创建线程。
Test2 s= new Test2("张三");
Test2 s1 = new Test2("test");
//这里调用跟调用普通方法没有任何区别,先调用谁就先执行谁,下面的方法必须要等上面的方法执行完才会执行
s.run();
s1.run();
}

}
//继承Thread 1:定义一个类 继承Thread类。
class Test2 extends Thread {
String name;
Test2(String name){
this.name=name;
}
public void show(){

for(int i=0;i<100;i++){
System.out.println(name+i);
}
}
//重新run方法 2:重写Thread类的run方法。
public void run(){
show();
}

}

结果:

张三0
张三1
张三2
张三3
张三4
张三5
张三6
张三7
张三8
张三9
张三10
张三11
张三12
张三13
张三14
张三15
张三16
张三17
张三18
张三19
张三20
张三21
张三22
张三23
张三24
张三25
张三26
张三27
张三28
张三29
张三30
张三31
张三32
张三33
张三34
张三35
张三36
张三37
张三38
张三39
张三40
张三41
张三42
张三43
张三44
张三45
张三46
张三47
张三48
张三49
张三50
张三51
张三52
张三53
张三54
张三55
张三56
张三57
张三58
张三59
张三60
张三61
张三62
张三63
张三64
张三65
张三66
张三67
张三68
张三69
张三70
张三71
张三72
张三73
张三74
张三75
张三76
张三77
张三78
张三79
张三80
张三81
张三82
张三83
张三84
张三85
张三86
张三87
张三88
张三89
张三90
张三91
张三92
张三93
张三94
张三95
张三96
张三97
张三98
张三99
test0
test1
test2
test3
test4
test5
test6
test7
test8
test9
test10
test11
test12
test13
test14
test15
test16
test17
test18
test19
test20
test21
test22
test23
test24
test25
test26
test27
test28
test29
test30
test31
test32
test33
test34
test35
test36
test37
test38
test39
test40
test41
test42
test43
test44
test45
test46
test47
test48
test49
test50
test51
test52
test53
test54
test55
test56
test57
test58
test59
test60
test61
test62
test63
test64
test65
test66
test67
test68
test69
test70
test71
test72
test73
test74
test75
test76
test77
test78
test79
test80
test81
test82
test83
test84
test85
test86
test87
test88
test89
test90
test91
test92
test93
test94
test95
test96
test97
test98
test99

调用run与调用start的区别的更多相关文章

  1. 调用start()方法和直接调用run()方法的区别

    调用start()方法和直接调用run()方法的区别 新建一个线程,只需要使用new关键字创建一个线程对象,并且调用start()方法即可. Thread thread = new Thread(); ...

  2. 手动调用run方法和普通方法调用没有区别

    手动调用run方法和普通方法调用没有区别

  3. java多线程调用run和不调用run的区别

    当在java程序中创建一个线程的时候,会三种情况: 1,只运行run方法 2,先执行start,再执行run方法 3,只运行start方法 三者的区别如下: 运行方式 区别 只运行run 只运行run ...

  4. 牛客网Java刷题知识点之调用线程类的start()方法和run()方法的区别

    不多说,直接上干货! 前期博客 牛客网Java刷题知识点之四种不同的方式创建线程 这里很简单 首先,系统通过调用线程类的start()方法来启动一个线程,此时这个线程处于就绪状态,而非运行状态,也就意 ...

  5. oracle创建函数和调用存储过程和调用函数的例子(区别)

    创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...

  6. 转 - RPC调用和HTTP调用的区别

    很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单 ...

  7. RPC调用和HTTP调用的区别

    很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单 ...

  8. JNI调用C和C++存在的区别

    JNI调用C和C++存在的区别   JNI是由C语言定义接口的,JNI通过函数名找函数入口,执行函数里的内容.这和函数用什么语言生成的并没有关系.只要保证函数名称符合JNI的协议.而使用C++要注意的 ...

  9. 既然 start() 方法会调用 run() 方法,为什么我们调用 start() 方法,而不直接调用 run() 方法?

    当你调用 start() 方法时,它会新建一个线程然后执行 run() 方法中的代码.如果直接调用 run() 方法,并不会创建新线程,方法中的代码会在当前调用者的线程中执行

随机推荐

  1. 【!Important】Zookeeper用来做什么的,有几种类型的节点

    zookeeper=文件系统+通知机制 一.Zookeeper提供了什么 1.文件系统 Zookeeper维护一个类似文件系统的数据结构 每个子目录项如NameService都被称为znoed,和文件 ...

  2. Android 监听键盘弹出和收起.

    entends:http://stackoverflow.com/questions/36837066/how-to-validate-virtual-keyboard-visibility 监听键盘 ...

  3. 企业应用打包的时候 修改ipa包的bundle identifier

    1.将ipa包后缀改为.zip,解压,之后打开包文件,找到info.plist文件后,修改相应的项就可以了.把修改后的文件重新压缩成zip,把zip改为ipa,替代原来的ipa,就可以了. 解决这个问 ...

  4. Diagnostics: File file:/tmp/spark-***/__spark_libs__***.zip does not exist

    Diagnostics: File file:/tmp/spark-c03df206-c90e-4c97-a2d6-a5d3fdb17811/__spark_libs__303213348409500 ...

  5. Maven内存修改

    为了解决maven内存经常溢出的问题,建议到安装的Maven目录下查找bin目录下的mvn.bat文件,用任意一款编辑器软件打开该文件,然后添加如下代码: set MAVEN_OPTS=-Xmx512 ...

  6. F#周报2018年第48期

    新闻 F#2018年圣诞日历 Mac上的Visual Studio 2017新版本7.7 Rider 2018.3将引入远程调试功能 Visual Studio 2017新版本15.9.3 视频及幻灯 ...

  7. opencv学习笔记——cv::CommandLineParser函数详解

    命令行解析类CommandLineParser 该类的作用主要用于命令行的解析,也就是分解命令行的作用.以前版本没这个类时,如果要运行带参数的.exe,必须在命令行中输入文件路径以及各种参数,并且输入 ...

  8. linux命令瞎记录find xargs

    1.创建多个文件 touch test{0..100}.txt 2.重定向 “>>” 追加重定向,追加内容,到文件的尾部 “>” 重定向,清除原文件里面所有内容,然后把内容追加到文件 ...

  9. php源码笔记

    php global 你global了一个变量,那么Zend就会去全局symbol_table去寻找,如果找不到,就会在全局symbol_table中分配相应的变量.通过这样的机制,实现了全局变量. ...

  10. [math] 绘制空间几何体的直观图

    这么多年,一直凭着从天而降的神来之灵感画着立体图. 而今才知道在二维平面上绘制空间几何体的直观图也是有方法的.叫做“画法几何” 1. 斜二测图 就是倾斜y轴,使y轴与x轴成45度的夹角.见: http ...