1、进程、线程的概念及其区别
首先,先给出进程的概念,进程指运行中的应用程序,每个进程都有自己独立的内存空间。一个应用程序可以同时启动多个进程,如:每次执行JDK的java.exe程序,就启动了一个独立的java虚拟机进程;而线程指的是进程中的一个执行流程,一个进程可以由多个线程组成,即一个进程中可以同时运行多个不同的线程,它们分别执行不同的任务。
两者之间的区别:
n每个进程都需要操作系统为其分配独立的内存地址空间
n同一进程中的所有线程在同一块地址空间中工作,这些线程可以共享 同一块内存和系统资源,比如共享一个对象或者共享已经打开的一个文件。
2、线程的创建和启动
首先,先给大家介绍创建线程的方法。创建线程有两种方法,(1)定义一个Thread类的子类,覆盖Thread类的run()方法,然后创建该子类的实例;(2)定义一个实现Runnable接口的类,实现它的run()方法,然后将这个类的实例作为Thread的构造方法的参数,创建Thread类的实例。
线程的启动是通过调用线程对象的start()方法启动线程。比如,
MyThread t = new MyThread();
t.start();
下面为大家举例说明两种不同的创建线程的方法
1、定义一个Thread类的子类
代码如下:
运行结果如下:
2、定义一个实现Runnable接口的类
代码如下:
运行结果如下:
3、设置线程名
根据线程的两种不同的创建方式,设置线程名也有两种不同的方式。下面我们分类来分析。
1、继承Thread的子类实现线程
在子类的构造方法中,调用父类构造方法super(name)即可,如下:
class MyThread extendsThread{
public MyThead(String name){
super(name);
}
}
然后在main方法中,可以利用循环语句,如下:
for(i=0;i<5;i++){
new MyThread(“线程”+i).start();
}
即可为线程设置名称
2、使用Runnable实现
这个更加简单,在构造Thread时,直接将接口对象和线程名称字符串传入Thread的构造方法即可实现,代码如下:
Thread t= new Thread(myRunnable,”线程”+i);
4、总结
最后给大家总结下多线程的优势:
1、多线程编程简单,效率高
能直接共享数据和资源(多进程不能)
2、适合于开发服务程序
如Web服务,聊天服务等
3、适合于开发有多种交互接口的程序
如聊天程序的客户端,网络下载工具
4、适合于有人机交互又有计算量的程序
如字处理程序(Word,Excel)
以上就是我对线程的概念、线程的创建启动和如何设置线程名的理解,希望对大家有所帮助。