黑马程序员技术交流社区
标题:
多线程1
[打印本页]
作者:
董将
时间:
2012-12-7 23:42
标题:
多线程1
多线程:
什么是进程?
进程:计算机中的正在执行的程序。
而每一个进程想要执行都需要至少有一个控制单元。
什么是线程?
进程中的控制单元就是线程。
开启了多线程有什么好处?
可以让多部分代码同时执行。
例如:聊天程序。收数据和发数据是同时运行的。
启动JVM,系统就会创建一个进程,该进程就会启动一个主线程,主线程要运行的代码在main方法中。
(其实还启动了一个线程,专门用于垃圾回收。)
----------------------
线程的创建方式:
1,继承Thread类。该Thread类用于线程这类事物的描述。只要通过继承Thread类,将代码存入run方法中即可。
步骤:
1,定义类extends Thread。
2,复写Thread类中的run方法。将多线程要执行的代码存放在run方法中。
3,创建Thread类的子类对象,创建线程。
4,调用start方法,开启线程,并执行run方法。
2,实现Runnable接口,对外提供规则,让自定义类具备功能扩展,因为java的单继承局限性。
1,实现Runnable接口。
2,复写Runnable接口中的run方法。
3,创建Thread类的对象,创建线程。
4,将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
传递的原因:是为了让多线程去执行自定义的run方法。
因为run方法所属的对象是Runnable接口的子类对象,所以将该对象在线程初始化的时候进行传递。
线程以初始化就明确了要执行的线程代码位置。
5,调用Thread类start方法,开启线程,并执行Runnable接口子类的run方法。
所以,如果自定义类已有明确的父类,那么它内部需要被多线程执行的代码,只能存入Runnable接口的run方法中。
class SubDemo extends Demo implements Runnable
{
public void run()
{
show();
}
void show()
{
//需要被多线程执行的代码
}
}
在创建多线程时,建议使用第二种方式.
原因:
1,该种方式避免了单继承的局限性。
2,可以实现多个线程的资源共享。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2