1.什么是多线程

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

1.1 进程概念

  进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

 

1.2 线程概念

  在一个程序中同时运行的多个独立流程,每一个独立的流程就是一个线程

 

1.3.什么是多线程

  多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multithreading)或同时多线程(Simultaneous multithreading)处理器。在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理(Multithreading)”。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程(台湾译作“执行绪”),进而提升整体处理(搜狗百科),最简单的比喻多线程就像火车的每一节车厢,而进程则是火车。车厢离开火车是无法跑动的,同理火车也不可能只有一节车厢。多线程的出现就是为了提高效率。

 

 

2.线程的创建

 

 

 

 2.1 通过实现 Runnable 接口;

class Thread1 implements Runnable{
    public  void  run(){
        System.out.println("run.....");
    }
}

public class XianChengTest {
    public static void main(String[] args) {
    Thread t1 = new Thread(new Thread1());
    t1.start();
    }
}

 运行结果

 run.....

 

2.2 通过继承 Thread 类本身; 

class Thread1 extends Thread{
    @Override
    public  void  run(){
        System.out.println("run.....");
    }
}

public class XianChengTest {
    public static void main(String[] args) {
        Thread1 thread1 = new Thread1();
        thread1.star();
    }
}

运行结果

  run.....

这里@override说明一下

 

@Override是Java5的元数据,自动加上去的一个标志,告诉你说下面这个方法是从父类/接口 继承过来的,需要你重写一次,这样就可以方便你阅读,也不怕会忘记

 

@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 

1>可以当注释用,方便阅读 


2>编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错 


比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法)

 

使用该标记是为了增强程序在编译时候的检查,如果该方法并不是一个覆盖父类的方法,在编译时编译器就会报告错误。

 

 

 

   

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄