Java中的多线程

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类的子类

代码如下:


Java中的多线程_第1张图片

运行结果如下:


Java中的多线程_第2张图片

2、定义一个实现Runnable接口的类

代码如下:


Java中的多线程_第3张图片

运行结果如下:


Java中的多线程_第4张图片

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)

以上就是我对线程的概念、线程的创建启动和如何设置线程名的理解,希望对大家有所帮助。

你可能感兴趣的:(Java中的多线程)