java中thread的start()和run()的区别
1.start()方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码:
通过调用Thread类的start()方法来启动一个线程, 这时此线程是处于就绪状态, 并没有运行。 然后通过此Thread类调用方法run()来完成其运行操作的, 这里方法run()称为线程体, 它包含了要执行的这个线程的内容, Run方法运行结束, 此线程终止, 而CPU再运行其它线程,
2.run()方法当作普通方法的方式调用,程序还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码:
而如果直接用Run方法, 这只是调用一个方法而已, 程序中依然只有主线程--这一个线程, 其程序执行路径还是只有一条, 这样就没有达到写线程的目的。
---------------------------------------------------------------------------
package waitio;
public class Thread1 extends Thread{
    public static void main(String[] args) {
        Thread1 one = new Thread1();
        one.setName("one : ");
        Thread1 two = new Thread1();
        two.setName("two : ");
        //线程1开启
        one.start();
        //线程2 开启
        two.start();
          /*   one.run();
//这是方法调用,而不是开启一个线程
        two.run();*/
    }
    @Override
    public void run() {
        super.run();
        for (int i = 0; i < 10; i++) {
            System.out.println(currentThread().getName()+"       --      "+i);
        }
    }
}        
输出:
one :      --      0
one :      --      1
one :      --      2
one :      --      3
one :      --      4
one :      --      5
one :      --      6
two :      --      0
two :      --      1
two :      --      2
two :      --      3
two :      --      4
two :      --      5
two :      --      6
two :      --      7
two :      --      8
two :      --      9
one :      --      7
one :      --      8
one :      --      9
In Example one the threads will run sequentially:
first, thread number one runs, when it exits the thread number two starts.
In Example two both threads start and run simultaneously.
Conclusion: the start() method call run() method asynchronously (does not wait for any result, just fire up an action), while we run run() method synchronously - we wait when it quits and only then we can run the next line of our code.
java中thread的start()和run()的区别的更多相关文章
- 【转】java中Thread类方法介绍
		原文: java中Thread类方法介绍 http://blog.csdn.net/seapeak007/article/details/53395609 这篇文章找时间分析一下!!!:http:// ... 
- 转载:java中Thread.sleep()函数使用
		点我跳过黑哥的卑鄙广告行为,进入正文. Java多线程系列更新中~ 正式篇: Java多线程(一) 什么是线程 Java多线程(二)关于多线程的CPU密集型和IO密集型这件事 Java多线程(三)如何 ... 
- 【转】彻底弄懂Java中的equals()方法以及与"=="的区别
		彻底弄懂Java中的equals()方法以及与"=="的区别 一.问题描述:今天在用Java实现需求的时候,发现equals()和“==”的功能傻傻分不清,导致结果产生巨大的偏差. ... 
- Java中public,private,protected,和默认的区别
		Java中public,private,protected,和默认的区别 1.private修饰词,表示成员是私有的,只有自身可以访问: 2.protected,表示受保护权限,体现在继承,即子类可以 ... 
- 【Java学习笔记之二十九】Java中的"equals"和"=="的用法及区别
		Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: String str1 = new String(" ... 
- java中public与private还有protect的区别
		java中public与private还有protect的区别 总是忘记. 
- Java中的基本类型和引用类型变量的区别
		Java中的基本类型和引用类型变量的区别 学了一年多,说实话你要我说这些东西我是真说不出来是啥意思 基本类型: 基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值. 引用类型: ... 
- JAVA中局部变量 和 成员变量有哪些区别
		JAVA中局部变量 和 成员变量有哪些区别 1.定义的位置不一样<重点>***局部变量:在方法的内部成员变量:在方法的外部,直接写在类当中 2.作用范围不一样<重点>***局部 ... 
- java 中,for、for-each、iterator 区别
		java 中,for.for-each.iterator 区别: 无论是在数组中还是在集合中,for-Each加强型for循环都是它们各自的普通for循环的一种"简写方式",即两者 ... 
随机推荐
- 2018-2019-2 网络对抗技术 20165230 Exp6 信息搜集与漏洞扫描
			目录 1.实验内容 2.实验过程 任务一:各种搜索技巧的应用 通过搜索引擎进行信息搜集 搜索网址目录结构 使用IP路由侦查工具traceroute 搜索特定类型的文件 任务二:DNS IP注册信息的查 ... 
- IAR拷贝工程后,修改工程名的方法
			在实际使用过程中,经常基于某个demo进行开发,但是demo的项目名往往不满足新项目的名称,如果重新建立工程,就需要进行一系列的配置,非常麻烦,其实可以直接修改项目名,做法如下; 1. 修改项目目录下 ... 
- ll(ls -l) 列属性
			文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名 drwx------ 2 Guest users 1024 Nov 21 21:05 Mail 
- Linux下锁定账号,禁止登录系统的设置总结【转】
			在我们运维工作中,会经常要求一些用户不允许登陆系统,以加固系统安全.今天这里介绍下锁定账号登陆的几种方法: (推荐使用)这种方式会更加人性化一点,因为不仅可以禁止用户登录,还可以在禁用登陆时给提示告诉 ... 
- 读SRE Google运维解密有感(三)
			前言 这是读“SRE Google运维解密”有感第三篇,之前的文章可访问www.addops.cn来查看.我们今天来聊聊“on call”也就是运维值班制度, 本人到目前为止也还在参与一线运维的值班, ... 
- nagios监控客户端报错/usr/bin/perl^M: bad interpreter: No such file or directory
			nagios服务端监控客户端内存时发现监控不上 在客户端直接执行脚本,报错如下: # /usr/local/nagios/libexec/check_memory.pl -w 6% -c 3% -ba ... 
- 如何在DOS窗口复制和粘贴命令
			在键盘上按下windows+R键,打开运行窗口. 在“打开”处输入cmd,并按下enter键,打开DOS窗口. 把鼠标移动到DOS窗口标题处,单击鼠标右键,选择属性. 把编辑选项处的“快速编辑模式”勾 ... 
- K最近邻kNN-学习笔记
			# -*- coding: utf-8 -*- """ Created on Thu Jan 24 09:34:32 2019 1. 翼尾花数据 2. 用 KNeighb ... 
- 如何从现有版本升级到element UI2.0?使用npm-check-updates
			转:https://blog.csdn.net/wojiaomaxiaoqi/article/details/78428738 登录element UI官网时提示2.0已经正式发布了,Element ... 
- django----Form扩展
			用第二种方式需要加上下面的这个: 三.判断用户民是不存在,存在就不添加了 from django.core.exceptions import ValidationError initial 修改时 ... 
