01认识多线程及其使用

引出 并发/高并发

简单来说,并发是指单位时间内能够同时处理的请求数。默认情况下Tomcat可以支持的最大请求数是
150,也就是同时支持150个并发。当超过这个并发数的时候,就会开始导致响应延迟,连接丢失等问
题。

影响并发的两个因素:

硬件:

CPU,内存,磁盘 网络

软件

线程数量 
JVM内存分配大小
网络通讯机制(BIO,NIO,AIO)
磁盘IO

Java中的线程


public class ThreadTest extends Thread{

    @Override
    public void run() {
        //线程会执行的指令
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("run...");
    }

    public static void main(String[] args) {

        ThreadTest threadTestDemo =new ThreadTest();
        threadTestDemo.start();
        System.out.println("ok");
        //
        ExecutorService executorService= Executors.newFixedThreadPool(10);
        executorService.submit(new ThreadTest());
    }

线程的生命周期

新建(new ):就是刚使用new方法,new出来的线程;
(这里的创建,仅仅是在JAVA的这种编程语言层面被创建,而在操作系统层面,真正的线程还没有被创建。只有当我们调用了 start() 方法之后,该线程才会被创建出来)

就绪(runnable):就是调用的线程的start()方法后,这时候线程处于等待CPU分配资源阶段,谁先抢的CPU资源,谁开始执行;

运行(running):当就绪的线程被调度并获得CPU资源时,便进入运行状态,run方法定义了线程的操作和功能;

阻塞(blocked):在运行状态的时候,可能因为某些原因导致运行状态的线程变成了阻塞状态,比如sleep()、wait()之后线程就处于了阻塞状态,这个时候需要其他机制将处于阻塞状态的线程唤醒,比如调用notify或者notifyAll()方法。唤醒的线程不会立刻执行run方法,它们要再次等待CPU分配资源进入运行状态;

销毁(Terminated):如果线程正常执行完毕后或线程被提前强制性的终止或出现异常导致结束,那么线程就要被销毁,释放资源;

interrupt()的作用

设置一个共享变量的值 true
唤醒处于阻塞(sleep/wait)状态下的线程。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值