(1)Java多线程的实现

来源:互联网 发布:淘宝卖衣服有哪些品牌 编辑:程序博客网 时间:2024/05/17 03:09

  • 引言
  • Java多线程的实现
    • 1 多线程的优缺点
    • 2 多线程的实现
    • 3使用 Thread实现多线程技术
    • 4使用 Runnable实现多线程技术
  • 总结

1.引言

      在学习线程之前,学习一下进程的概念是十分有比较的,那么什么是进程呢?通俗的来讲:进程可以理解为一个应用程序,比如我们打开一个VS软件,或者打开一个myeclipse软件,就产生了一个进程。那么什么是线程呢?线程可以理解为:进程中独立运行的子任务。,一个进程可以由多个线程组成(一个进程至少有一个线程)。进程,应用程序,线程的关系如下图所示:

这里写图片描述

2.Java多线程的实现

2.1 多线程的优缺点

     优点: 为什么要有多线程这种技术呢?我们可以考虑一个场景,一个砖厂有2000块砖头,我们需要将1000块砖头从砖厂A运送到砖厂B,如果我们用一个人来搬砖(一次只能搬十块),可能需要4个小时,但是如果我们需要雇佣10个人来搬砖,速度就要快得多。

     缺点:同样是上面那个例子,多线程我们要注意线程安全问题,比如:多个人来搬砖,如何保证只搬砖1000快,不能多,也不能少。这就要牵扯到线程安全的问题。当然,安全问题也不仅仅是这一个方面,在后面的学习中将渐渐的介绍如何各种安全问题,以及如何避免安全问题。

2.2 多线程的实现

      在Java中我们实现多线程的方法有两种:

  • 继承Thread类
  • 实现Runnable接口

这两个方法之间的关系是:

这里写图片描述

2.3使用 Thread实现多线程技术

  • 首先我们创建一个类(叫做:MyThread):注意要实现run方法
public class MyThread extends Thread{    @Override    public void run() {        System.out.println("MyThread线程启动了");        super.run();    }}
  • 在main方法中使用MyThread线程
public class app {    public static void main(String[] args) {        //创建一个线程实例        MyThread td=new MyThread();        //启动线程        td.start();        System.out.println("main主线程");    }}
  • 运行结果
    这里写图片描述

  • 运行结果告诉我们:

    当java应用程序运行之后,默认是有一个线程的,叫做main线程。我们前面说过进程是一个引用程序,一个进程有多个线程组成,也就是说进程至少有一个线程上面的程序有两个线程,一个是自定义的线程,一个是main主线程每一个线程之间的运行顺序是随机的(可以看作是随机的,但是不是完全随机的)。

2.4使用 Runnable实现多线程技术

  • 创建一个类,实现Runnable接口,注意要实现run方法
public class MyThread implements Runnable{    @Override    public void run() {        System.out.println("实现了Runnable接口");    }}
  • 运行自定义的线程
public class app {    public static void main(String[] args) {        //创建一个线程实例,传入我们的接口类        Thread td=new Thread(new MyThread());        //启动线程        td.start();        System.out.println("main主线程");    }}
  • 运行结果

这里写图片描述

  • 结果解释

    要运行实现了接口的线程方法,需要使用Thread类包装一下。即:将类对象传入Thread的构造方法。然后启动该线程

3.总结

      在本篇博客中主要介绍了:

  • 什么是进程,什么是线程
  • 线程和进程之间的关系(一个进程至少包含一个线程)
  • 在Java中如何实现多线程的技术。
1 1
原创粉丝点击