• 线程


    java线程的6中状态: 

      new

      runable

      blocked

      waiting

      timed_waiting

      terminated

    转换图:

      

     操作系统层面的东西,操作系统中的进程:

       什么是进程:

        一个程序进入到内存中的过程,简称为进程!

        官方解释:process,计算机中的程序关于某数据集合中的一次运行活动,是系统进行资源分配和调度的基本单位!

      什么是进程状态:

        一个进程是有生命周期的,整个生命周期我们可以称为一组状态:

          new  新建态

          ready  就绪态

          running  运行态

          waiting  阻塞态(有时多的时候,就会排成队列[先进先出FIFO])

          termainted  终止态

          

    JVM层面的线程:

      

        

      各个线程状态发生的条件:

        

    创建线程的方式一:

      继承Thread类,重写Run方法,start方法开启线程;

    创建线程的方式二:

       实现Runable接口,重写Run方法,start方法开启线程;

    线程安全问题:

      当使用多个线程访问同一资源的时候,且多个线程对资源都有写对操作,就会出现线程安全问题;

      要解决多线程并发访问一个资源对安全性问题,java提供了同步机制来解决:synchronized(同步代码块,同步方法,锁机制);

    线程池:

      Executor

      线程池的缘由:

        1.避免大量线程相互之间抢占资源而导致阻塞现象;

        2.提升性能,避免线程大量创建销毁造成的开销;

      Java通过Executors提供了四个静态方法创建线程池;

        可以缓存的线程池:newCacheThreadPool;

        创建一个定长的线程池,可控制线程最大并发数,超出的线程会在队列中等待;newFixedThreadPool;

        创建一个定长的线程池,支持定时及周期性任务执行,newScheduledThreadPool;

        创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO、LIFO、优先级)执行,newSingleThreadExecutor;

     

        

  • 相关阅读:
    Flink (一)概述
    【转】你未必知道的49个CSS知识点
    【转】清除浮动的四种方式及其原理理解
    前端知识总结
    【转】CSS为什么这么难学?方法很重要!
    【转】chrome开发者工具各种骚技巧
    【ASP.NET Core】设置Web API 响应的数据格式——Produces 特性篇
    【ASP.NET Core】绑定到 CancellationToken 对象
    【ASP.NET Core】设置 Web API 响应数据的格式——FormatFilter特性篇
    【ASP.NET Core】MVC 控制器的模型绑定(宏观篇)
  • 原文地址:https://www.cnblogs.com/yikuan-919/p/11141098.html
Copyright © 2020-2023  润新知