【java多线程编程】三种多线程的实现方式

前言

      在java语言最大的特点是支持多线程的开发(也是为数不多支持多线程的编程语言),所以在整个的java技术的学习里面,如果你不能够对多线程的概念有一个全面并且细致的了解,则在日后进行一些项目设计的过程中尤其是并发访问设计过程之中就会出现严重的技术缺陷。

      如果要想理解我们的线程,那么首先就需要了解一下进程的概念,在传统的DOS系统的时代,其本身有特征:如果你的电脑上出现了病毒,那么我们所有的程序无法执行,因为传统的DOS采用的是单进程处理,而单进程处理的最大特点:在同一时间段上只允许一个程序在执行。

      那么后来到了windows的时代就开启了多进程的设计,于是就表示在一个时间段上可以同时运行多个程序,并且这些程序将进行资源的轮流抢占。所以在同一时段上会有多个程序依次执行,但是在同一个时间点上只会有一个进行执行,而后来到了多核的CPU,由于可以处理的CPU多了,那么即便有再多的进程出现,也可以比单核CPU处理的速度有多提升。

Java是多线程编程语言,所以Java在进行并发访问处理的时候,可以得到更高的处理性能。

进程与线程

      如果想要在java之中实现多线程的定义,那么就需要有一个专门的线程的主体类进行线程的执行任务的定义,
而这主体类的定义是有要求的,必须实现特定的接口或者继承特定的父类才可以完成。

继承Thread类,实现多线程

      java里面提供了一个java.lang.Thread的程序类,那么一个类只要继承了此类就表示这个类为线程的主体类,
但是并不是说这个类就可以实现多线程处理了,因为还需要覆写Thread类中提供的一个run()方法(public void run()),而这个方法就属于线程的主方法。
范例:

class MyThread extends Thread {//线程主体类
    private String title;
    public MyThread(String title) {
        this.title = title;
    }
    @Override
    public void run() {//线程的主体方法
        for(int x = 0; x < 10 ; x++) {
            System.out.println(this.title + "运行,x = " + x);
        }
    }
}

      多线程要执行的功能,都应该在run()方法中进行定义,但是需要说明的是:
在正常情况下,如果要想使用一个类中的方法,那么肯定要产生实例化对象,而后去调用类中提供的方法,但是run()方法不能直接调用的,因为这牵扯到一个操作系统的资源调度问题,所以要想启动多线程必须使用start()方法。
范例:

public class ThreadDemo {
    public static void main(String[] args) {
        new MyThread("线程A").start();
        new MyThread("线程B").start();
        new MyThread("线程C").start();
    }
}

      通过此时的调用你可以发现,虽然调用了start()方法,但是最终执行的run()方法,并且所有的线程对象都是交替执行的。执行顺序不可控。

  • 57
    点赞
  • 217
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值