首页 > 编程语言 >java 多线程的start()和run()的理解

java 多线程的start()和run()的理解

时间:2023-04-26 18:33:35浏览次数:44  
标签:执行 run start 线程 多线程 方法

run()方法中是各个线程要执行的具体内容。所以当一个线程直接调用run()时那么直接开始执行方法体,这是在main线程中的多个线程只能时按照顺序的等待前面的线程结束run()方法的执行。

而调用start方法只是线程进入准备阶段(Ready),并没有真正执行,这需要JVM进行分配时间片进行轮转线程执行,当一个线程得到时间片时,那么JVM会使该线程自动的调用run方法执行,当时间片结束时,这就到下一个线程来执行run方法了,当再次接到时间片时,进行线程的上下文切换,继续之前的运行。这才是多线程的含义。

标签:执行,run,start,线程,多线程,方法
From: https://www.cnblogs.com/myz99/p/17356943.html

相关文章

  • 服务器断电后启动失败报错:Generating /run/initramfs/rdsosreport.txt
    一、现象服务器断电,然后启动时发现起不来,连接显示器发现报错,如下所示: 原因:一般是服务器突然断电导致文件损坏所致,只要修复回去就好二、解决过程2.1寻找/dev/*-root文件说明: /dev/mapper目录下一般有三个文件,其中 centos-root是我们需要修复的。有些服务器的文件名称......
  • (一)asyncio的基本使用框架,python高效处理数据,asyncio.gather(),asyncio. create_task
    asyncio是Python3.4引入的标准库,是一个基于事件循环的异步I/O并发库。它提供了一种协作式的多任务处理方式,使得我们能够在一个线程中并发处理多个I/O操作。它通过将I/O操作转化为异步的非阻塞调用,从而实现了高效的并发处理。其原理如下: 定义协程(coroutine):使用关键......
  • java面试题--多线程
    一、哲学家就餐问题?线程死锁问题。解决死锁问题的方法:增加锁的粒度。所有筷子放到一把大锁里。每次都锁定所有筷子。每次只能有一个哲学家抢到筷子,效率不高。有一个哲学家是左撇子。每次只能有一个哲学家抢到筷子,效率不高。每隔一个人就是一个左撇子。二、交替输出问题?解......
  • 自定义实现SpringBoot Starter
    在日常的开发中,会将开发的公共jar包发布的仓库,这样可以实现代码的复用。这里介绍的是自定义SpringBootStarter的方式,对于采用SpringBoot开发的项目来说,引入和使用非常的方便。1、SpringBootStarter介绍SpringBoot和Spring相比,在配置上简化了很多,核心就是因为Starter引入了一些......
  • MySQL主从复制Slave_IO_Running为No
    主要记录解决问题的过程,为以后发现类似问题提供解决方法的参考。首先查看从机的mysql日志文件:tail/var/log/mysqld.log日志从上往下看,可以很快看到在中间位置上有一个ERROR的标志,后面写得很清楚,我的主机UUID和从机UUID重复了,而这两个UUID在这里要求必须要不相等的,所以我上面......
  • This dataset does not have valid histogram required for classification method, r
     此数据集没有分类方法所需的有效直方图,请运行“计算统计信息”工具生成直方图。参考1:https://blog.csdn.net/soderayer/article/details/125409022参考2:https://blog.csdn.net/aGang_Gg/article/details/86690749 计算栅格统计信息......
  • 关于oracel 递归语法start with connect by 和 left join 一起使用的一个bug
    左表为树状结构机构表A,右表为人员表(有机构ID字段)BSELECTA.*,B.*FROMALEFTJOINBONA.ORG_ID=B.ORG_IDSTARTWITHA.ORG_ID='011000000004'CONNECTBYPRIORA.ORG_ID=A.P_ORG_ID查询结果出现,B表中的1条记录,最后重复出现。(最终的结果可能为:对A和B......
  • C++ 多线程并发
    C++参考手册-并发支持库《C++ConcurrencyinAction》https://segmentfault.com/a/1190000040628584?utm_source=sf-similar-articlehttps://zhuanlan.zhihu.com/p/547312117bilibiliC++多线程并发基础入门教程1创建线程C++11之前原生不支持多线程,C++11起逐步引......
  • Rust编程语言入门之最后的项目:多线程 Web 服务器
    最后的项目:多线程Web服务器构建多线程Web服务器在socket上监听TCP连接解析少量的HTTP请求创建一个合适的HTTP响应使用线程池改进服务器的吞吐量优雅的停机和清理注意:并不是最佳实践创建项目~/rust➜cargonewhelloCreatedbinary(application)`......
  • 虚拟机|--Hyper-V|--Start PXE over IPv4.报错解决方案
    前言在Hyper-V管理器中>>操作>>"快速创建"了一个WIndowsXP系统的虚拟机,结果启动的时候报错了解决方案在创建虚拟机的时候不要快速创建,而使用新建,在指定代数步骤选择第一代(1),开始创建的步骤改一下就可以了.其他配置推荐在分配内存步骤我写的是8000M左右,(根......