run()方法只是一个类中的普通方法,直接执行和普通的方法没有设么两样

start()方法则不同,它首先做了创建线程等一系列工作,然后调用行的run()方法


新建线程

Thread thread = new Thread();
thread.start();

这样就开启了一个线程。

有一点需要注意的是

Thread thread = new Thread();
thread.run();

直接调用run方法是无法开启一个新线程的。

start方法其实是在一个新的操作系统线程上面去调用run方法。换句话说,直接调用run方法而不是调用start方法的话,它并不会开启新的线程,而是在调用run的当前的线程当中执行你的操作。

Thread thread = new Thread("t1")
{
    @Override
    public void run()
    {
        // TODO Auto-generated method stub
        System.out.println(Thread.currentThread().getName());
    }
};
thread.start();

如果调用start,则输出是t1

Thread thread = new Thread("t1")
{
    @Override
    public void run()
    {
        // TODO Auto-generated method stub
        System.out.println(Thread.currentThread().getName());
    }
};
thread.run();

如果是run,则输出main。(直接调用run其实就是一个普通的函数调用而已,并没有达到多线程的作用)


线程为什么调用start()而不是直接调用run()相关推荐

  1. java线程立刻执行_Java 线程调用start()后会立即执行run()方法吗?

    别想当然 问题 Java 线程调用start()后会立即执行run()方法吗? 我们在开发中,经常和线程打交道,有些东西总是司空见惯,想当然地认为某些事情理所当然... 但是今天偶然发现一个有趣的现象 ...

  2. 启动线程时使用 start 而不是 run

    今天团队里面的妹子问阿粉,为什么在启动线程的时候,都使用 start 方法,而不是 run 方法呢 还好阿粉平时一直有在学习,要不真的被妹子问住了 在多线程中,如果想让一个线程启动,你使用的方法一定是 ...

  3. 调用链系列四:调用链上下文传递

    在之前的调用链系列文章中,我们已经对调用链进行了详细介绍,相信大家已经对调用链技术有了基本的了解. 其实,在调用链的绘制过程中,调用链上下文的传递非常值得关注.各个节点在获取上层上下文后生成新的上下文 ...

  4. mysql plugin 调用_MySQL插件接口的调用方式

    author:sufei 版本:8.0.16 一.简介 首先简单说明一下插件的实现原理 在程序的合适位置(挂钩处)安插相应的函数指针,相应的结构类似:if (fun_ptr != null) fun_ ...

  5. java的传值调用什么_Java的传值调用

    (本文非引战或diss,只是说出自己的理解,欢迎摆正心态观看或探讨) 引子 之所以写这篇文章是因为前些天写了一篇<Java中真的只有值传递么?>探讨了网上关于Java只有值传递的说法,当时 ...

  6. 在php中调用java接口吗,php 调用 java 接口

    php 需要开启 curl模块 /* * HTTP 请求函数封装 */ function http_request_cloudzone($url, $data){ //var_dump($url.&q ...

  7. Jawin –Java/Win32互动项目 可调用DLL及COM的调用项目

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Jawi ...

  8. matlab 调用mex,从MATLAB中调用MEX中的C类方法

    AFAIK,没有简单的方法可以做到这一点,因为mexFunction接口相当扁平.但是,我可以想到一些不同的解决方法,可以让你接近.根据您的需求选择最佳的一个. >最简单的方法是在mex函数中创 ...

  9. HTTP 调用 WebService、CXF 动态调用 WebService

    概述   Web Service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用 ...

最新文章

  1. mysql 查看编码方式_Mysql查看编码方式专题
  2. MySQL 递归查询 当前节点及子节点
  3. 以弹窗形式打开页面_“弹窗广告”肆意而为!扰民?还可能侵权!
  4. 支持向量机总结(SVM)
  5. 全Delphi代码实现安卓扫码程序
  6. 厉害了网页扫码,所有方法都给你总结到这了,赶紧收藏
  7. python音频识别_音频识别和比较
  8. Taro小程序生成二维码保存本地
  9. Win10(21h2)十一代i7,HUD750,打驱动一直重启
  10. db2 创建实例,创建数据库,创建表
  11. “构建之法”--第三次作业:原型设计
  12. 计算机专业创新创业培养,中职计算机专业学生创新创业能力培养思考
  13. 双线双IP空间或者服务器域名解析说明
  14. 怎样把ICO图标改成圆形的?
  15. 国内五大抗DDoS服务
  16. 不对等的爱情并不长久
  17. 【疯狂诗词大会小程序2.0】功能模块+前端+诗词答题小程序+内置数千道题目+开箱即用
  18. 计算机课小组主题作业,计算机应用课程小组学习法的实践
  19. POI中设置Excel单元格格式样式(居中,字体,边框,背景色、列宽、合并单元格等)
  20. xjoi1.4行李托运

热门文章

  1. android 添加日程失败,Andriod向系统日历添加日程
  2. mysql中group concat_mysql中group_concat()函数的使用方法总结
  3. 2019手机浏览器排名_浏览器排行榜2019年1月浏览器市场份额排名
  4. SpringBoot开发案例之整合Dubbo分布式服务
  5. python之vscode中手动选择python解释器(mac)
  6. 【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)
  7. Spring Data JPA
  8. iOS中的UIAlertView之新方法(弹出警告框)
  9. Spark(四) -- Spark工作机制
  10. 【数据安全案例】车管信息再遭窃取,数据安全缺乏保障