首页 > 其他分享 >多线程

多线程

时间:2022-09-20 17:24:46浏览次数:65  
标签:执行 队列 创建 线程 返回值 多线程

一、线程概念

       进程是正在运行的程序,是系统资源调度的基本单位,一个进程至少有一个线程,线程中可以共享内存资源

      例如:进程执行多件事情,例如一遍听音乐,一遍打游戏,线程是一个事可以分成多线程执行

二、线程创建方式

      ①继承Thread类

      ②实现Ruannable接口

      ③实现Callable接口

三、线程池

      在阿里巴巴Java开发手册中提到,避免使用Executors创建线程池,主要是避免使用其中的默认实现,那么我们可以自己直接调用ThreadPoolExecutor的构造函数来自己创建线程池

     正确创建方法:

ExecutorService  executor = new ThreadPoolExecutor(corePoolSize,//核心线程数
                             maximumPoolSize, //最大线程数
                             keepAliveTime,//当线程空闲时,所允许保存的最大时间,超过这个时间,线程将被释放销毁,但只针对于非核心线程。
                             unit,//时间单位,TimeUnit.SECONDS等
                             workQueue,//任务队列
                             threadFactory,//创建线程的工厂类
                             handler//拒绝策略                                                                                                           );

     任务委托给线程池几种方法:

execute(Runnable)//不返回值,如果任务不要求返回值,则选择execute,可以极大提高性能
submit(Runnable)//返回值 submit(Callable)//返回值

    关闭线程池

shutdown()
仅停止阻塞队列中等待的线程,正在执行的线程会执行结束。
shutdownNow()
不仅会停止阻塞队列中的线程,而且会停止正在执行的线程。

    线程池工作原理:

      

 

 

 

四、线程声明周期

五、线程安全问题

标签:执行,队列,创建,线程,返回值,多线程
From: https://www.cnblogs.com/yfdfj/p/16711166.html

相关文章

  • Java 多线程中的任务分解机制-ForkJoinPool,以及CompletableFuture
    简介ForkJoinPool的优势在于,可以充分利用多cpu,多核cpu的优势,把一个任务拆分成多个“小任务”,把多个“小任务”放到多个处理器核心上并行执行;当多个“小任务”执行完成之后......
  • SSD, Redis多线程与云服务器架构,PC处理器
    SSD,Redis多线程与云服务器架构,PC处理器参考文献链接https://mp.weixin.qq.com/s/T-ZTn4_oGwhXSpPNg0_wOwhttps://mp.weixin.qq.com/s/qqTgnG3ndeUiZXdnmzQUfQhttps:/......
  • C#多线程 操作UI问题
    C#多线程操作UI的简单写法:KeledoSuperPlus privateTaskSchedulermpr_ts_UIContext;privatevoidbutton1_Click(objectsender,EventArgse){......
  • Python多线程编程——threading模块
    本文参考:https://blog.csdn.net/youngwyj/article/details/124720041https://blog.csdn.net/youngwyj/article/details/124833126目录前言threading模块1.简介2.创建线......
  • Android多线程
    序言:线程和进程1、进程进程是指运行中的程序,比如我们使用QQ,就启动该进程分配内存空间。进程是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的......
  • 多线程
    多线程概念同步先做1,1做完了再做2异步两件事可以一起做并行在一个CPU核心上只运行一件事并发在一个CPU核心上运行多件事,利用CPU时间切片技术......
  • 多线程---实现Callable接口
    实现Callable接口  案例:packagecom.mokuiran.thread;​importorg.apache.commons.io.FileUtils;​importjava.io.File;importjava.io.IOException;importjava.......
  • 多线程---Lamba表达式
    Lambda表达式参考视频:多线程10:Lamda表达式哔哩哔哩bilibili  理解函数式接口是学习java8lambda表达式的关键所在函数式接口的定义:任何接口,如果只包含唯一一个......
  • 多进程和多线程结合跑满cpu
    importjsonimportmultiprocessingimportthreadingimporttimeimportrandomimportrequestsimporturllib3lock=threading.RLock()urllib3.disable_warning......
  • java随笔(七)——多线程(比较详细)
    线程线程是进程中单个的顺序控制流,是一条执行路径单线程:一个进程如果只有一条执行路径,则称为单线程程序多线程:一个进程如果有多条执行路径,则称为多线程程序多线程的实......