多线程 一、入门

什么是进程?什么是线程?

进程是应用程序的一次执行,是多个线程的集合。
线程是进程的基本单位,是进程中的一条执行路径,线程只是一条执行路径。,一个进程至少有一个线程。

为什么要使用多线程?

多线程的好处是提高程序的效率。例如:百度云多线程下载、分批发送短信。

多线程的创建方式

  1. 继承Thread类

/**
 * @author daxia li
 * @time 2019/7/20
 */
public class ThreadDemo extends Thread{


    /**
     *  线程需要执行的任务
     */
    @Override
    public void run() {
        for (int i=0;i<20;i++){
            System.out.println("run : i = "+i);
        }
    }

    public static void main(String[]args){
        ThreadDemo threadDemo = new ThreadDemo();

        threadDemo.start();

        for (int i=0;i<20;i++){
            System.out.println("main : i = "+i);
        }
    }
}
  1. 继承Runnable接口
/**
 * @author daxia li
 * @time 2019/7/20
 */
public class RunnableDemo implements Runnable{
    @Override
    public void run() {
        for (int i=0;i<20;i++){
            System.out.println("run : i = "+i);
        }
    }

    public static void main(String[]args){
        RunnableDemo runnableDemo = new RunnableDemo();

        new Thread(runnableDemo).start();

        for (int i=0;i<20;i++){
            System.out.println("main : i = "+i);
        }
    }
}
  1. 匿名内部类
/**
 * 匿名内部类创建线程
 * @author daxia li
 * @time 2019/7/20
 */
public class ThreadDmo {

    public static void main(String[]args){
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i=0;i<20;i++){
                    System.out.println("run : i = "+i);
                }
            }
        });

        thread.start();

        for (int i=0;i<20;i++){
            System.out.println("main : i = "+i);
        }
    }
}

常用线程api

常用线程api方法
start()启动线程
currentThread()获取当前线程对象
getID()获取当前线程ID Thread-编号 该编号从0开始
getName()获取当前线程名称
sleep(long mill)休眠线程
join()oin作用是让其他线程变为等待, t1.join();// 让其他线程变为等待,直到当前t1线程执行完毕,才释放。
yield()暂停当前正在执行的线程,并执行其他线程。(可能没有效果)
Stop()停止线程
常用线程构造函数
Thread()配一个新的 Thread 对象
Thread(String name)分配一个新的 Thread对象,具有指定的 name正如其名。
Thread(Runable r)分配一个新的 Thread对象
Thread(Runable r, String name)分配一个新的 Thread对象

守护线程

Java中有两种线程,一种是用户线程,另一种是守护线程。
 用户线程是用户自定义创建的线程,主线程停止,用户线程不会停止
守护线程当进程不存在或主线程停止,守护线程也会被停止。
使用setDaemon(true)方法设置为守护线程

线程的生命周期

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值