调用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. ftp服务器Serv-U 设置允许自动创建不存在的目录

    一.由来 最近改写了项目中ftp上传部分的代码. 用到的组件为: <dependency> <groupId>commons-net</groupId> <a ...

  2. 装饰模式和它在JDK中的实现

    对装饰者模式的一个通俗的理解就是:一个东西A包装了另外一个东西B,A在B的功能基础上又扩展了新的功能,但是对外提供的接口不变 装饰者模式(Decorator)的定义: 动态地给一个对象添加一些额外的职 ...

  3. cordova 插件 调用iOS社交化分享(ShareSDK:微信QQ分享)

    1.github上已有的插件:https://github.com/nwpuhmz/ShareSDKPlugin 2.安装插件 cordova plugin add https://github.co ...

  4. web前端之jQuery

    前端的核心编程语言是javaScript,jQuery的出现简化了前端编程,以前看过一些,现在不用大都忘记了,以下总结几个前端技巧. 作为面向对象的脚本语言,注意区别jQuery和DOM对象,及其方法 ...

  5. sshpass 配置密码登录ssh

    tar -zxvf sshpass-1.06.tar.gzcd sshpass-1.06./configuremake && make install sshpass -p userp ...

  6. VBS数组导出到Excel

    <script language="vbscript"> dim arr(9999,4) for i=0 to 9999 for j = 0 to 4 arr(i,j) ...

  7. Xshell设置网络设备自动登录

    使用Xshell登录网络设备时候需要手动输入用户名和密码 设置免输入用户名及密码 用户名 密码 再次登录就不需要手动输入用户名和密码了

  8. 线性素数筛 ACM-ICPC 2018 南京赛区网络预赛 J Sum

    https://www.jisuanke.com/contest/1555?view=challenges 题意: 题解:写完都没发现是个积性函数233 想法就是对x分解质因数,f(x)就是2^k,其 ...

  9. 出于性能考虑,C语言自动地以传地址的方式将数组传递给被调函数 const 编译错误 最小权限原则

    #include <stdio.h> int main(void) { char array[5]; printf("array=%p,&array[0]=%p,& ...

  10. 用SignalTap进行硬件仿真

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...