分布式与高并发系列:一、多线程的意义和使用

线程:轻量级进程,是CPU最小的调度单元

1.并发/高并发
    硬件:CPU、内存、磁盘、网络
    软件:最大化的利用硬件资源:线程数量、JVM内存分配大小、网络通信机制(BIO,NIO,AIO)、磁盘IO
    
    并发和并行:
    
    并发:体现的是服务端承载的吞吐量 单核心CPU也是支持多线程的,cpu的时间片切换
    并行:CPU能同时处理的多个线程
    
    多线程特点:1.异步 2.并行
    
    Java中的线程
        Runnable接口
        Thread类
        Callable/future
    
    线程基础
    
    线程的生命周期
    状态:
            阻塞 (线程阻塞都会释放CPU)
                 WAITING        wait()
                 TIMED_WAITING  sleep(100) 带有休眠时间的阻塞
                 BLOCKED       没抢到锁的状态
                 IO阻塞
                 分布式与高并发系列:一、多线程的意义和使用
    线程的启动
        new Thread.start()
        为什么不是run?
        

线程启动过程:分布式与高并发系列:一、多线程的意义和使用
    线程的终止    
        run方法执行结束
        volatile jint_interrupted;    state

 

t1.stop() //及其不推荐,会造成数据的不完整
        
        t1.interrupt();
        Thread.isInterrupted() //复位
        
        interrupt()
            设置一个共享变量的值true
            唤醒处于阻塞状态下的线程  (阻塞状态下的线程都会有    InterruptedException来捕获,并在其中处理)
            
            本质上interrupt()是通过一个共享变量来实现线程间的通信