调用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. Python 字典 fromkeys()方法

    Python 字典 fromkeys() 方法用于创建一个新的字典,并以可迭代对象中的元素分别作为字典中的键,且所有键对应同一个值,默认为None. fromkeys() 方法语法: 1 dict.f ...

  2. 第9天 py就业班基础02.01-02

    明天该看就业班的02    03字串符 2018-4-21 10:47:34 数据类型  py自动给数据分类型 2018-4-21 10:55:05 input使用 定义一个变量 然后input输给变 ...

  3. tsm 切记

    切记不可删除节点,如果删除下面带的数据也会删除

  4. .NET Core开发日志——Middleware

    熟悉ASP.NET架构的开发者一定对于HTTP Modules与HTTP Handlers不陌生.两者的作用主要是对网络请求执行特定的处理工作.而在.NET Core中,它们都被Middleware( ...

  5. python web篇 创建数据库

    python3 manage.py migrate ls sqlite3 使用单文件数据库,管理方便 运行测试 python manage.py runserver 输入http://127.0.0. ...

  6. SQL行列转换6种方法

    在进行报表开发时,很多时候会遇到行列转换操作,很对开发人员针对于SQL级别行列转换操作一直不甚理解,今天正好抽空对其进行了一些简单的总结.这里主要列举3种可以实现SQL行列转换的方法,包括通用SQL解 ...

  7. centos 安装oracle 报Checking swap space: 0 MB available, 150 MB required. Failed <<<<

    1 系统环境 centos 6.5 oracle 11g 内存 16G 硬盘 ssd 250G 2 运行安装命令: [oracle@localhost database]$ ./runInstalle ...

  8. [administrative][qemu][kvm] qemu使用--bridge-helper

    公司服务器,源码安装的 qemu-2.9.0. 不是yum装的. 问题1:非超级用户的kvm权限问题: 略,直接超级用户使用. 也许有用? https://access.redhat.com/docu ...

  9. 转:web.xml 配置中classpath: 与classpath*:的区别

    原文链接:web.xml 配置中classpath: 与classpath*:的区别 引用自:http://blog.csdn.net/wxwzy738/article/details/1698393 ...

  10. crm项目整理

    crm项目整理   一.开发背景 由于公司人员的增多,原来通过excel表格存取方式过于繁琐,而且对于公司人员的调配和绩效考核等不能做到精确处理,所以开发crm系统,开始开发只是针对销售人员和客户,后 ...