继续奋斗
2015-06-07 13:21
375 查看
Thread的实现
1.extend Thread,then overrides run method()
然后,下列代码会创建并启动一个线程:
2.implements Runnable then implements run method()
PrimeRun p = new PrimeRun(143);
new Thread(p).start();
Thread是系统给你的资源,有了Thread你才有从CPU那里得到可执行时间片的权力, Thread并不认识你的程序,不知道有test 这样的类,因为编序员有千千万,每个人命名都不一样,想要做的事都不一样,
所以 Thread只认识一个! 那就是Runnable 。 Thread认识Runnable 并且知道Runnable 里面有一个run方法. 一旦调用Thread的start方法,Runnable 方法里的run就会被Thread自动运行。
所以,当我们把我们的类继承(这里应该叫实现接口)自Runnable 的时候,我们的程序就是属于Runnable 一个类型的了。 虽然是Runnable 的子类,但人家认识你爸爸,当然也知道了你。
Thread可以不管你内部有什么情况,他只管你有run()方法就行了,他就调start让你去运行run 所以我们在run里面写点东西,这样就可以让系统运行我们想要做的代码了。
是不是很通俗很易懂呢?
所以要运行线程的步骤是,
1。生成我们自己的类对象
2。从系统那里得到Thread
3。让Threa调我们的类对象,让其start起来
1.extend Thread,then overrides run method()
class PrimeThread extends Thread { long minPrime; PrimeThread(long minPrime) { this.minPrime = minPrime; } public void run() { // compute primes larger than minPrime . . . } }
然后,下列代码会创建并启动一个线程:
PrimeThread p = new PrimeThread(143); p.start();
2.implements Runnable then implements run method()
class PrimeRun implements Runnable { long minPrime; PrimeRun(long minPrime) { this.minPrime = minPrime; } public void run() { // compute primes larger than minPrime . . . } }
PrimeRun p = new PrimeRun(143);
new Thread(p).start();
Thread是系统给你的资源,有了Thread你才有从CPU那里得到可执行时间片的权力, Thread并不认识你的程序,不知道有test 这样的类,因为编序员有千千万,每个人命名都不一样,想要做的事都不一样,
所以 Thread只认识一个! 那就是Runnable 。 Thread认识Runnable 并且知道Runnable 里面有一个run方法. 一旦调用Thread的start方法,Runnable 方法里的run就会被Thread自动运行。
所以,当我们把我们的类继承(这里应该叫实现接口)自Runnable 的时候,我们的程序就是属于Runnable 一个类型的了。 虽然是Runnable 的子类,但人家认识你爸爸,当然也知道了你。
Thread可以不管你内部有什么情况,他只管你有run()方法就行了,他就调start让你去运行run 所以我们在run里面写点东西,这样就可以让系统运行我们想要做的代码了。
是不是很通俗很易懂呢?
所以要运行线程的步骤是,
1。生成我们自己的类对象
2。从系统那里得到Thread
3。让Threa调我们的类对象,让其start起来
相关文章推荐
- Win8操作系统下IIS如何配置asp.net的运行环境
- 【C++】动态开辟二维数组
- 有序链表的建立
- margin标记可以带一个、二个、三个、四个参数,各有不同的含义。
- 有序链表的建立 分类: 链表 2015-06-07 13:21 15人阅读 评论(0) 收藏
- 百度web定位 html5百度地图定位
- java中 this和super的区别
- struts2总结四:Action与Form表单的交互
- 详解linux vi命令用法
- js局部变量与全局变量
- nginx开机自动启动(添加到服务)
- 详细完整——XP系统硬盘安装Ubuntu14.04
- xiugaicrontab默认编辑器
- Directx中如何利用离屏表面加载一个图片资源
- C++ 智能指针详解
- Oracle Data Pump 导出和导入数据
- 我的第一个REST客户端程序!
- SpringMVC 学习笔记(十) 异常处理HandlerExceptionResolver
- 我的第一个REST客户端程序!
- VS2013正则表达式应用示例