java线程基础

一、 为什么要多线程 CPU和IO设备之间的速度存在很大的差异,提高CPU利用率 提高服务端并发量 线程安全问题: 有共享数据的情况下使用多线程可能会导致线程安全问题 原子性:时间片轮转导致 可见性:CPU和内存之间有缓存/工作内存和主内存 有序性:指令重排序 实现线程安全的方法: 互斥同步:悲观 ...

垃圾收集器必问系列—ZGC

本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 人的一切痛苦,本质上都是对自己的无能的愤怒。——王小波 ZGC有人称它为Zero GC,其实“Z”并非什么专业名词的缩写,这款收集器的名字就叫作Z Garbage Collector ...

带你熟悉3种AQS的线程并发工具的用法

摘要:AQS 的全称为(AbstractQueuedSynchronizer),AQS 是一个用来构建锁和同步器的框架,使用 AQS 能简单且高效地构造出应用广泛的大量的同步器。 本文分享自华为云社区《【高并发】AQS中的CountDownLatch、Semaphore与CyclicBarrier核 ...

垃圾收集器必问系列—CMS

本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 应该相信,自己是生活的战胜者。——雨果 纵观全书《深入理解JVM虚拟机》第三版,在垃圾回收器这一篇章,对于CMS的笔墨是非常多的。CMS收集器是HotSpot虚拟机追求低停顿的第一次 ...

一文弄懂三色标记算法

本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 你愈是少说你的伟大,我将愈想到你的伟大。——培根 面试官:我们先从JVM基础开始问,了解三色标记算法吗? 我:额......不了解。 面试官:出去的时候记得把门带上。 现在Java面 ...

JVM是如何解决跨代引用问题的?

本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 不知道自己的无知,乃是双倍的无知。——柏拉图 跨代引用问题 跨代引用是指新生代中存在对老年代对象的引用,或者老年代中存在对新生代的引用。 假如要现在进行一次只局限于新生代区域内的收集 ...

扑克玩法:9点半--数据分析

扑克玩法:9点半--数据分析 一、前言 又是新的一年,在这里先给各位读者大大们拜个晚年。祝大家新年快乐,万事如意,阖家欢乐。 过年拜年是中国的传统习俗,在春节期间人们会互相拜访并送上祝福。拜年不仅是一项重要的社交活动,也是一次难忘的旅程。它让我们感受到了团圆与温暖,同时也增强了彼此之间的联系。 小编 ...

Python实现抽奖程序

抽奖程序 ''' 抽奖程序 使用时可以修改嘉宾名单,然后单机‘开始’和‘停止’按钮 来控制界面上名单的滚动实现抽奖功能,涉及的模块主要 有多线程 ''' import itertools import random import threading import time import tkinte ...

第二章 线程管控

第二章 线程管控 主要内容: 启动线程,并通过几种方式为新线程指定运行代码 等待线程完成和分离线程并运行 唯一识别一个线程 2.1 线程的基本管控 ​ main函数其本声就是一个线程,在其中又可以启动别的线程和设置其对应的函数入口。 2.1.1 发起线程 ​ 不管线程要执行的任务是复杂还是简单,其最 ...

c++ 智能指针总结

内存管理 堆 定义:动态分配内存的区域 c++会设计到的两个有关内存管理器的操作 让内存管理器分配一个某大小的内存块 分配内存要考虑程序当前已经有多少未分配的内存 内存不足时要从操作系统申请新的内存;内存充足时,从可用内存里取出一块合适大小的内存,将其标记为已用,再将其返回给要求内存的代码 让内存管 ...

day12-功能实现11

家居网购项目实现011 以下皆为部分代码,详见 https://github.com/liyuelian/furniture_mall.git 27.功能25-事务管理 27.1下订单问题思考 在生成订单的功能中,系统会去同时修改数据库中的order,order_item,furn三张表,如果有任意 ...