前言
Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。
一、线程是什么?
1.进程
是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间。
2.线程
1、是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行. 一个进程最少有一个线程。
2、线程实际上是在进程基础之上的进一步划分,一个进程启动之后,里面的若干执行路径又可以划分成若干个线程。
二、创建线程的形式?
创建线程主要有两种形式:实现Runnable、继承Thread。实现Runnable与继承Thread相比有如下优势:
1、通过创建任务,然后给线程分配任务的方式实现多线程,更适合多个线程同时执行任务的情况。
2、可以避免单继承所带来的局限性。
3、任务与线程是分离的,提高了程序的健壮性。
下面主要简述实现Runnable的线程创建方式。
三、通过实现 Runnable 接口来创建线程?
1.创建一个实现 Runnable 接口的类(任务)
为了实现 Runnable,一个类只需要执行一个方法调用 run()。代码如下(示例):
static class MyRunnable implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
}
2.创建一个任务对象
在主线程中创建一个任务对象。代码如下(示例):
MyRunnable r = new MyRunnable();
3.创建一个线程并给他一个任务
通过Thread去实现 Runnable 接口的类。代码如下(示例):
Thread t = new Thread(r);
4.运行线程
新线程创建之后,调用它的 start() 方法它才会运行。代码如下(示例):
t.start();
总结
通过创建任务,然后给线程分配任务的方式实现多线程。如何有效利用多线程?关键是理解程序是并发执行而不是串行执行的。当程序中有多个(一个以上)子系统需要并发执行,这时候就需要利用多线程编程。通过对多线程的使用,可以编写出非常高效的程序。不过请注意,如果你创建太多的线程,程序执行的效率实际上是降低了,而不是提升了。