前言 为什么要用 线程池 为了解决上述两类问题,于是引入了线程池概念。 对于第一类问题,频繁创建与销毁线程:线程池复用线程,提高线程利用率,避免频繁的创建与销毁线程。 对于第二类问题,大量创建线程:线程池限制线程创建的最大数量,防止无限制地创建线程。 线程池提供了一种方式来管理线程和消费,维护基本数据统计等工作,比如统计已完成的任务数; 介绍线程池 ......
245
0
0
2023-10-05
前言和大纲 计算机系统里每个进程(Process)都代表着一个运行着的程序,进程是对运行时程序的封装,系统进行资源调度和分配的基本单位。 一个进程下可以有很多个 线程 ,线程是进程的子任务, 是 CPU 调度和分派的基本单位 , 用于保证程序的实时性,实现进程内部的并发,线程同时也是操作系统可识别的最小执行和调度单位 。 ......
228
0
0
2023-09-21
一.引言 “操作系统的线程状态和 java 的线程状态有什么关系?”这是校招时被问到的一个问题。当时只顾着看博文、面经等零散的资料,没有形成系统的知识体系,一时语塞,答的不是很对。在网上也没找到足够细致地讲解博文,于是整理出了这篇内容。 Java的线程状态牵扯到了同步语义,要探讨Java的线程状态的,必不可免要回顾其锁机制。因此本文的主要分 ......
264
0
0
2023-09-18
Java 17 多线程 Thread 的基础知识点这节开始说说 Java 中的 多线程 ,在说多线程之前,先说说这些基础的概念。 说 线程 前,先说说进程。 “进程”这一术语在20世纪60年代初期首先于美国麻省理工学院的MULTICS系统和 IBM公司 的CTSS/360系统中引入。进程是操作系统中的一个最基本也是最重要的概念。 对于进程而言,一般具有 5 ......
312
0
0
2023-09-17
目录单例模式、多实例模式、和线程安全单例模式懒汉式和饿汉式对比多线程模式下的安全性多实例模式总结单例模式、多实例模式、和线程安全单例模式单例模式是指确保一个类仅有一个唯一的实例,并且提供了一个全局的访问点。分类: 懒汉式、饿汉式为什么需要单例模式?再某些特殊的情况下,存在一个类仅能用来产生一个唯一对象的必要性。例如:打印机室有许多打印机,但是它的打印管理系统 ......
244
0
0
2023-09-16
1. 多线程编程基础1.1 进程、线程1.1.1 进程狭义:进程是正在运行的程序的实例。 广义:进程是一个具有一定独立功能的程序,关于某个数据集合的一次运行活动。进程是操作系统动态执行的基本单元,在传统的操作系统中, 进程既是基本的分配单元,也是基本的执行单元。1.1.2 线程 线程 是操作系统能够进行运算调试的最小单位。它被包含在进程中,是进程中的实际动作 ......
335
0
0
2023-09-13
优质文章,及时送达 线程 线程的概念,百度是这样解释的:线程(英语:Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(Lightweight Proces ......
225
0
0
2023-09-10
引言一、工作线程执行任务/工作窃取实现过程从 signal Work() -> tryAddWorker() -> createWorker() -> newThread() -> ForkJoinWorkerThread() -> registerWorker() -> deregisterWorker()这条路线分析完 ......
247
0
0
2023-09-10
1.什么是线程不安全? 线程 不安全也叫非线程安全,是指 多线程 执行中,程序的执行结果和预期的结果不符的情况就叫着线程不安全 。 线程不安全的代码 SimpleDateFormat 就是一个典型的线程不安全事例,接下来我们动手来实现一下。首先我们先创建 10 个线程来格式化时间,时间格式化每次传递的待格式化时间都是不同的,所以程序如果正确执行 ......
246
0
0
2023-09-07
本文重点是从源码层面理解jdk8中 线程池 的实现。核心机制再分析源码之前,我们还是先回顾和熟悉下 线程 的核心工作机制。线程池工作原理线程池采用的是一种生产者-消费者的模型,如下图: 主线程调用execute、或者submit等方法提交任务给线程池。如果线程池中正在运行的工作线程数量小于corePoolSize(核心线程数量),那么马上创建线程运行这个任务 ......
281
0
0
2023-08-28
目录线程停止的原理如何正确停止线程在普通情况下停止线程在阻塞情况下停止线程线程在每次迭代后都阻塞停止线程的最佳实践错误停止的方法被弃用的stop,suspend和resume方法用volatile设置boolean标记位interrupt源码查看interrupt相关函数练习线程停止的原理使用interrupt来通知,而不是强制java提供了interrru ......
255
0
0
2023-07-26
作者:crossoverJie原文: 前言开发中不免会遇到需要所有子 线程 执行完毕通知主线程处理某些逻辑的场景。或者是线程 A 在执行到某个条件通知线程 B 执行某个操作。可以通过以下几种方式实现:等待通知机制两个线程通过对同一对象调用等待 wait() 和通知 notify() 方法来进行通讯。如两个线程交替打印奇偶数: public class Two ......
259
0
0
2023-07-23
合理的使用Java多线程可以更好地利用服务器资源。一般来讲, 线程 内部有自己私有的线程上下文,互不干扰。但是当我们需要多个线程之间相互协作的时候,就需要我们掌握Java线程的通信方式。本文将介绍Java线程之间的几种通信原理。锁与同步在 Java 中,锁的概念都是基于对象的,所以我们又经常称它为对象锁。一个锁同一时间只能被一个线程持有。也就是说,一个锁如果 ......
253
0
0
2023-07-23
这是一篇学习分享文章,这篇文章将会介绍以下几项内容:1、如何让一个程序同时做多件事?( 多线程 的创建、多线程的应用)2、如何让小球在画面中真实地动起来?(赋予小球匀速直线、自由落体、上抛等向量运动)3、多线程游戏仿真实例分享( 飞机大战 、接豆人、双线挑战三个游戏实例)涉及的知识点有:多线程的应用、双缓冲绘图、小球的向量运动、游戏的逻辑判断、键盘监听器的使 ......
388
0
0
2023-07-23
目录一. synchronnized 的特性1. 互斥性2. 可重入性二. 死锁问题1. 什么是死锁2. 死锁的四个必要条件3. 常见的死锁场景及解决3.1 不可重入造成的死锁3.2 循环等待的场景三. Object类中提供线程等待的方法1. 常用方法2. wait和notify的搭配使用3. wait 和 sleep 的区别4. 练习: 顺序打印ABC总结 ......
278
0
0
2023-07-16