求教各位高手:在多线程中,线程对象能否不运行start方法,而直接运行run方法?
我发现编译和运行都可以通过,当然没有start方法的话,多个线程之间不能切换。
我想弄清楚的是,start方法和run方法到底用了什么机制,保障多个线程能正常切换??
查了帮助文档和Thread、Runnable的源代码,还是百思不得其解!
提前谢谢各位的回复!
我发现编译和运行都可以通过,当然没有start方法的话,多个线程之间不能切换。
我想弄清楚的是,start方法和run方法到底用了什么机制,保障多个线程能正常切换??
查了帮助文档和Thread、Runnable的源代码,还是百思不得其解!
提前谢谢各位的回复!
解决方案 »
- 不用数据库,怎么实现数据读写。
- 如果一个类实现了两个接口,而这两个接口里边有相同名字的方法,在类里边如何定义这两个方法?
- 刚开始学习JAVA,请叫高手关于JDK配置的问题.
- 有谁知道短信平台中发送短消息如何换行!
- 帮我看看这代码那错了
- java程序如何判断连接mysql的表的时候,该表搜索坏了的时候,如何判断他坏了,
- 到底是 "JAVA程序员"还是 "网络工程师",请帮帮我吧,我在此感激不尽了!!!
- jb9使用access的应用窗口不能打开?
- 关于查询的问题
- 出现以下错误:Exception in thread "main" java.lang.NoClassDefFoundError: 请问是什么原因呢?
- 求解释该段代码含义
- 用过jdk1.1.5的牛人请进,急!
而使用start启动方法会新建一个线程来执行run方法中的代码。start方法中会调用操作系统的线程管理调度机制来切换CPU时间给不同的线程。
个人意见。
如果你直接运行run方法,实际上这个方法仍然运行在当前线程;
如果你调用start方法,实际上系统会创建一个新线程,在新线程中自动调用run方法;