java 线程 start 方法 跟 run 方法的区别
来源:互联网 发布:新网中文域名 编辑:程序博客网 时间:2024/05/18 02:43
今天忽然想到 线程的 问题 然后就写了个测试例子 !
参考:http://zhidao.baidu.com/link?url=dYpdWOn6FBZNjUkIFbWESIlw7bgHaQyD4ltQGSi9RlPUsZiOIWFw0799J56cthEgGo1Hfg6IdbUgXq38Nh9-DK
通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行。然后通过此Thread类调用方法run()来完成其运行操作的,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程终止,而CPU再运行其它线程,而如果直接用Run方法,这只是调用一个方法而已,程序中依然只有主线程--这一个线程,其程序执行路径还是只有一条,这样就没有达到写线程的目的。记住:线程就是为了更好地利用CPU,提高程序运行速率的!
上面是 百度知道里面的原话!
下面是我写的例子:
/** * Created by hy.ao on 14-5-13. */public class ThreadTest extends Thread { @Override public void run() { for (int i = 0; i < 1000000; ) { i++; } System.out.println("thread is ok"); } @Override public synchronized void start() { super.start(); }}
import junit.framework.TestCase;/** * Created by hy.ao on 14-5-13. */public class Test extends TestCase { public static void main(String[] args) { test1(); test2(); } public static void test1() { ThreadTest threadTest = new ThreadTest(); threadTest.start(); System.out.println(111212); } public static void test2() { ThreadTest threadTest = new ThreadTest(); threadTest.run(); System.out.println(111212); }}
运行 test1() 的结果 , start 是2个线程 所以 应该先打印 11212
111212thread is ok
运行test2() 这个是同一个主线程里面 所以应该 是 后打印 11212
thread is ok111212
所以很明显可以看出结论了!
start() 是启动了2个线程!而调run 方法 只是调方法 还是主线程!
0 0
- java 线程 start 方法 跟 run 方法的区别
- Java线程中run和start方法的区别
- Java线程中run和start方法的区别
- Java线程中run和start方法的区别
- Java线程中run和start方法的区别
- Java线程中run和start方法的区别
- Java线程中run和start方法的区别
- Java线程中run和start方法的区别
- Java线程中run和start方法的区别
- java线程中run和start方法的区别
- java Thread线程run()和start()方法的区别
- Java线程中run和start方法的区别
- java线程中start和run方法的区别
- Java中启动线程start和run方法的区别
- Java线程中run和start方法的区别
- Java线程中run和start方法的区别
- Java线程中run和start方法的区别
- Java线程中run和start方法的区别
- 浅析MySQL中exists与in的使用
- __bridge,__bridge_transfer和__bridge_retained详解
- redmine与svn完美集成方案
- android:configChanges属性
- cocos2dx 编译错误 BUILD FAILEDG:\android\SDK\android-sdk-windows\tools\ant\build.xml:645: The following
- java 线程 start 方法 跟 run 方法的区别
- Python开发工具PyCharm个性化设置备份
- hah
- 使用eclipse编译android版本的libcurl
- shell基础一
- 【android Broadcast】安全性~
- c_语法入门_day2
- iOS 简单的倒计时封装
- MySQL与Oracle 差异比较之七用户权限