多线程
文章平均质量分 91
Java多线程
江七7
智者顺时而谋,愚者逆时而动
展开
-
线程池--简单分析
线程池思想概述 问题需求: 如果并发线程数量很多,并且每个线程都是执行一个很短的任务就结束了,这样频繁的创建线程, 会降低系统的效率,因为频繁创建线程和销毁线程需要时间, 解决问题 JDK1.5 之后提供的线程池可以使得线程复用。 线程池概念 线程池 :其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。 由于线程池中有很多操作都是与优化资源相关的,我们在这里就不多赘述。我们通过一张图来了解线程池的工作原理: 合理利用线程池原创 2021-08-11 22:03:00 · 111 阅读 · 0 评论 -
等待唤醒机制
一、线程间通信 1.1 概念 多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。 比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。 1.2 为什么要处理线程间通信 多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行, 那么多线程之间需要一些协调通信,以此来帮我们达到多线程共同操作一份数据。 1.3 如何保原创 2021-08-11 17:00:01 · 103 阅读 · 0 评论 -
线程状态及转换
一、线程状态概述 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中, 有几种状态呢?在API中 java.lang.Thread.State 这个枚举中给出了六种线程状态: 这里先列出各个线程状态发生的条件,下面将会对每种状态进行详细解析 。 线程状态 导致状态发生条件 NEW(新建) 线程刚被创建,但是并未启动。还没调用start方法。 Runnable(可运行) 线程可以在java虚拟机中运行的状态,可能正在运行自己代码,也可能没有,原创 2021-08-11 14:57:10 · 754 阅读 · 0 评论 -
线程和同步
一、线程 1.1 创建线程方式一:创建Thread类的子类 Java使用java.lang.Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流即一段顺序执行的代码。Java使用线程执行体来代表这段程序流。Java中通过继承Thread类来创建并启动多线程。 步骤如下: 定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此把run()方法称为线程执行体。 创建Th原创 2021-08-10 18:55:33 · 109 阅读 · 0 评论 -
多线程引入--基本概念
我们在之前,学习的程序在没有跳转语句的前提下,都是由上至下依次执行,那现在想要设计一个程序,边打游戏边听歌,怎么设计? 要解决上述问题,咱们得使用多进程或者多线程来解决。 并发与并行 并发:指两个或多个事件在同一个时间段内发生。 并行:指两个或多个事件在同一时刻发生(同时发生)。 在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行。 这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是原创 2021-08-10 11:02:39 · 141 阅读 · 0 评论 -
Java多线程
1、程序.进程.线程 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。 进程是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位。 通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。 小贴士: 很多多线程是模拟出来的,真正的多线程是指有多个CPU,即多核,如服务器。如果是模拟出来的多线程,即在一个CPU的情况下,在同一个时间点,CPU只能执行一个代码,因为切换的很快,所以就有同时执行的错觉。原创 2021-07-27 10:22:06 · 132 阅读 · 1 评论