Java线程
文章平均质量分 88
nssnail
道虽迩,不行不至,事虽小,不为不成
展开
-
看完就知道什么是线程池了
目录一、为什么要用线程池二、初识线程池线程池的核心属性图解工作流总结 一、为什么要用线程池 在我们日常的开发中,并发是不可避免的,如果所有任务都使用单线程去完成,那么所有任务都会阻塞等待上一个任务完成,这种方式会带来很严重的性能问题,是不可取的。但是在并发过程中,如果任务数量过多,大量的数据频繁的创建和销毁也是会严重影响性能,而且如果线程一直没执行为在等待,而其他线程也一样,频繁的创建又没这么快销毁,那么将很容易造成oom异常(内存溢出) 所以我们为何要使用线程池 1.反复创建线程导致开销大 2.过多的线原创 2021-04-28 11:38:22 · 191 阅读 · 0 评论 -
synchronized的深入浅出
一、初识synchronized 1.售票案例 在了解synchronized之前,我们先来回顾一下上一个章节的案例 public class TicketWindow implements Runnable{ private static final int MAX = 50; private int index=1; @Override public void run() { while(index<=MAX) { System.out.println(Thread原创 2020-08-06 20:19:42 · 290 阅读 · 0 评论 -
线程的start与run的关系,线程创建的两种方式
线程的start与run的关系 在之前的一章我们讲过,我们new一个Thread对象那么线程也仅仅是new阶段,并没有真正意义上的创建线程,只有在调用start方法的时候,才是能说他是一个线程,那么为什么调用start的时候会启动线程并调用run方法呢,下面我们来看看他的源码。 public synchronized void start() { if (threadStatus != 0) throw new IllegalThreadStateExcept原创 2020-06-24 16:02:02 · 591 阅读 · 0 评论 -
线程生命周期与CPU调度简述
生命周期概述 在每个线程中都有自己的局部变量表、程序计数器、以及生命周期等,本章节将描述什么是线程的生命周期。 首先线程的生命周期可分为五个重要阶段: new runnable running blocked terminated 具体流程如图所示(该图来源于《Java高并发编程详解》) 1.new状态 当我们采用new关键字创建一个Thread对象时,该对象就是一个new状态,但是他并不是可执行状态,严格来讲这并不是线程,只是一个普通的对象,只有当他调用start方法的时候,才能称之为线程。 2.r原创 2020-06-23 18:35:21 · 376 阅读 · 0 评论 -
线程概述与Java代码实现线程
概述 什么是进程和线程 其实很容易理解,进程是什么?就是平时我们经常用到的exe程序其实就是个进程,比如qq,迅雷等,那么一个进程中就会有很多个线程。比如我们迅雷下载,我们可以同时下载多个文件,那么每一个下载操作都可以称作线程,多个文件同时下载,这就叫做并发,所以所谓的高并发就是量级的线程同时操作,这就叫做高并发。 其特性特点有一下几点 线程是操作系统能够进行运算调度的最小单位。 它被包含在进程之中,是进程中的实际运作单位。 一个进程可以开启多个线程。 多线程扩展了多进程的概念,使得同一个进程可以同时并发原创 2020-06-23 15:43:40 · 148 阅读 · 0 评论