编程语言
首页 > 编程语言> > Java中的多线程

Java中的多线程

作者:互联网

首先理清几个基本概念:

  程序:为完成特定任务,用某种语言编写的一组指令的集合。即一段静态的代码(还没运行起来)

  进程:是程序的一次执行过程,也就是说程序运行起来了,加载到了内存中,并占用了cpu的资源。这是一个动态的过程:有自身的产生、存在和消亡的过程,这也是进程的生命周期。

  线程:进程可进一步细化为线程,是一个程序内部的执行路径。

  若一个进程同一时间并行执行多个线程,那么这个进程就是支持多线程的。

  线程是cpu调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc),线程切换的开销小。

  多线程:是指程序当中包含多个执行单元,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个线程创建多个并行执行的线程来完成各自的任务。

  Java线程的分类:用户线程和守护线程

  java的gc()垃圾回收线程就是一个守护线程

  守护线程是用来服务用户线程的,通过start()方法前调用thread.serDaemon(True)可以把一个用户线程变成守护线程

  并行和并发

    并行:多个cpu同时执行多个任务

    并发:一个cpu同时执行多个任务

  多线程的优点

    提高应用程序的相应。

    提高计算机cpu的利用率

    改成程序结构。将复杂的进程分成多个线程,独立运行。

线程的创建与启动

  多线程实现的原理

    java的jvm允许程序运行多个线程,多线程可以通过Java中的java.lang.Thread类来体现

  Thread类的特性

    每个线程都是通过每个特定的Thread对象的run()方法来完成操作,经常把run()方法的主体称                    为线程体

    通过Thread方法的start()方法来启动这个线程,而非调用run()

  多线程的创建,方式一:继承于Thread类

    1.创建一个继承于Thread类的子类

    2.重写Thread类的run()方法

    3.创建Thread类的子类的对象()

    4.通过此对象调用start()来启动一个线程

 代码实现:多线程执行同一段代码

package com.Thread.demo1;

public class demo1 extends Thread{
    @Override
    public void run(){
        for(int i = 0;i<100;i++){
            if(i % 2 == 0){
                System.out.println(Thread.currentThread().getName() + ":\t" + i);
            }
        }
    }
    public static void main(String[] args){
        demo1 test1 = new demo1();
        test1.start();
        demo1 test2 = new demo1();
        test2.start();

        new demo1().start();
        System.out.println("主线程");
    }
}

 

标签:run,多个,Thread,线程,Java,多线程,cpu
来源: https://www.cnblogs.com/99kol/p/16675783.html