多线程应用之调用start()方法和run()方法的区别
2024-08-28 14:20:30
今天在做项目的时候,遇到一个问题,两个一模一样的demo,运行出来的效果却一点也不一样,找了半天,就是有一行代码不同,一个是thread.start();一个是thread.run();和我预计的一样,就是这里的问题,我的项目是有子线程执行耗时操作的。如果世界在主线程中调用子线程的run()方法时,主界面有假死的现象。
归根结底,如果我们直接调用子线程的run()方法,其方法还是运行在主线程中,代码在程序中是顺序执行的,所以不会有解决耗时操作的问题。所以不能直接调用线程的run()方法,只有子线程开始了,才会有异步的效果。当thread.start()方法执行了以后,子线程才会执行run()方法,这样的效果和在主线程中直接调用run()方法的效果是截然不同的。
最新文章
- CCProxy二级代理上网设置
- angularJS——ng-bind指令与插值的区别
- AD域的安装
- full_case &; parallel_case
- html5 和css3的小知识!
- 数据库连接类oracleHelper
- ll 详解
- unique mapped reads
- IOS架构师之路:我对IOS架构的点点认识(大纲)
- Deep Learning(深度学习)学习笔记整理系列之(三)
- 写你自己struts1框架
- Windows系统前端常用PS快捷键:
- JDK及Tomcat集成到MyEclipse
- JS-NaN的数据类型
- chkconfig: command not found
- sort-桶排序
- Redis源码笔记-初步
- final阶段140字评论
- BadUSB测试记录
- hiho# 1394最小路径覆盖 网络流拆点
热门文章
- 第8.20节 Python中限制动态定义实例属性的白名单:__slots__
- 第3章 Python的数据类型目录
- PyQt(Python+Qt)学习随笔:Qt Designer中部件mimimumSize和maximumSize的含义
- APP软件系统测试
- js中的(function(){})()立即执行
- tcp/ip原理/三次握手/四次挥手
- js--数组的map()方法的使用
- 快用Django REST framework写写API吧
- mysql中FILE权限
- 多任务-python实现-协程(2.1.11)