• 2024-07-03并发编程 - 第三章
    线程基础机制1.1守护线程Daemon守护线程可以简单地理解为后台运行线程。进程结束,守护线程自然而然地就会结束,不需要手动的去关心和通知其状态。例如:在应用程序运行时播放背景音乐,在文字编辑器里做自动语法检查、自动保存等功能。Java的垃圾回收也是一个守护线程。守护线程
  • 2024-07-03操作系统大题复习
    磁盘调度算法一次磁盘读写需要的时间寻道时间先来先服务FCFS优点:公平缺点:性能差,寻道时间长最短寻道时间有限SSTF缺点:可能产生饥饿现象扫描算法SCAN优点:不会产生饥饿现象缺点:响应频率不平均循环扫描算法C-SCAN优点:磁道响应频率平均缺点:平均寻道时间长多道
  • 2024-06-24std::future 如何保存多个对象进行同步等待
    std::future是一个C++11引入的标准库类,可用于异步获取计算结果。通常情况下,std::future可以通过get()函数来等待异步操作完成,并获取其结果。如果需要等待多个异步操作完成并获取它们各自的结果,可以使用std::future的姊妹类std::shared_future来实现。std::shared_
  • 2024-06-21Linux 阻塞和非阻塞 IO 实验学习
    Linux阻塞和非阻塞IO实验学习IO指的是Input/Output,也就是输入/输出,是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候,如果不能获取到设备资源,那么阻塞式IO就会将应用程序对应的线程挂起,直到设备资源可以获取为止。对于非阻塞IO,应用程序对应的线
  • 2024-06-20聊一聊 Monitor.Wait 和 Pluse 的底层玩法
    一:背景1.讲故事在dump分析的过程中经常会看到很多线程卡在Monitor.Wait方法上,曾经也有不少人问我为什么用!syncblk看不到Monitor.Wait上的锁信息,刚好昨天有时间我就来研究一下。二:Monitor.Wait底层怎么玩的1.案例演示为了方便讲述,先上一段演示代码,Worker1在执行的过
  • 2024-06-12epoll使用与原理
    使用要点边缘模式(ET)与水平模式(LT)区别下面内容来自linuxmanpageTheepolleventdistributioninterfaceisabletobehavebothasedge-triggered(ET)andaslevel-triggered(LT).Thedifferencebetweenhetwomechanismscanbedescribedasfollows.Suppo
  • 2024-06-09深入解析:MySQL连接超时问题排查与优化策略
    引言​在现代企业应用中,数据库的稳定性和响应速度是保证业务连续性的关键。MySQL作为广泛使用的数据库系统,其连接超时问题可能成为性能瓶颈,影响用户体验和业务效率。本文将深入探讨MySQL连接超时的原因、影响以及优化策略。超时配置详解​查看当前设置​要了解MySQL
  • 2024-06-08进程知识点
    系统编程进程注意:进程是操作系统分配资源的基本单位!操作系统是以进程为单位来分配系统资源的,比如内存空间、CPU使用权等。线程是操作系统调度资源的最小单位!进程包含线程!1.进程的特征进程具有四个基本特征,分别是动态性、并发性、独立性、异步性动态性:进程会在程序运行时
  • 2024-06-07go cond
      cond:packagemainimport("fmt""sync""time")funcmain(){varmusync.Mutexcond:=sync.NewCond(&mu)varreadyboolgofunc(){time.Sleep(time.Second)//模拟一些工作
  • 2024-06-06自定义监控项
    采集TCP连接状态(实战项目)精确分析tcp连接状态,可以精准得知服务器的链接情况,确保web服务器的健康1.命令获取tcp的状态[root@web-7~]##-a显示所有socket、-t显示tcp协议连接-n只显示ip[root@web-7~]#netstat-antActiveInternetconnections(serversandestablis
  • 2024-06-04MySQL数据库:Lock wait timeout exceeded; try restarting transaction问题解析及解决方案
    MySQL数据库:Lockwaittimeoutexceeded;tryrestartingtransaction问题解析及解决方案一、背景描述二、原因分析三、解决方案3.1方案一事务信息查询3.2方案二如果杀掉线程依然不能解决,可以查找执行线程耗时比较久的任务,kill掉3.3方案三innodb_lock_wait_timeout锁定等
  • 2024-06-03sleep()、wait()、join()、yield()之间的的区别
    这里提到的sleep()、wait()、join()和yield()是多线程编程中常用的几个方法,它们之间有一些区别:1.sleep():-sleep()方法是Thread类的静态方法,用于让当前线程暂停执行指定的时间。-调用sleep()方法时,当前线程会暂停执行,但不会释放对象锁。-sleep()只会暂停当前
  • 2024-06-02Shell 脚本演示 Linux 中的 Wait 命令
    Wait命令是进程管理命令之一。Linux中有不同的进程命令,主要使用5个命令,它们是ps、wait、sleep、kill、exit。ps是进程状态的缩写。它显示有关活动进程的信息。wait命令将暂停调用线程的执行,直到其子进程之一终止。它将返回该命令的退出状态。sleep命令用于将下一个命令的执行
  • 2024-06-01C++多线程原理详解
    学习C++多线程时,我有如下疑问:mutex的lock和unlock做了什么?mutex、lock_guard、unique_lock,它们之间的关系是什么?condition_variable中的wait做了什么?带着这些疑问,我查阅了一些资料,整理出本文。文章目录一、mutex二、lock_guard三、unique_lock四、condition
  • 2024-05-30线程简述:协程、抢占式、sleep、wait、interrupt,优雅中断线程,线程通信等
    思维导图在此:java线程简述-CSDN博客1、线程与协程协程-->线程-->进程,协程最小协程:用户态,go语言线程:用户态、内核态都有。cpu调度的最小单位。是工人,从进程获取资源,多个线程共享进程的资源。进程:内核态。操作系统调度资源的最小单位。是资源管家。2、调度机制协同式。
  • 2024-05-28sleep() 和 wait() 有什么区别?
    sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或noti
  • 2024-05-27多线程基本常识
    多线程的状态   在Java中,一个线程的生命周期有以下几种状态:新建(New):当线程对象被创建时,线程处于新建状态。此时线程对象存在,但还没有调用start()方法启动线程。运行(Runnable):当线程调用start()方法后,线程进入就绪状态,等待被分配CPU时间片执行。当线程获取到CPU时间片后,
  • 2024-05-27TCP_UNACCEPTABLE_14: [close-wait] out-of-wdw SEQ | unacceptable ACK -> ACK (seq, ack) [close-wait]
    测试目的:验证TCP在CLOSE-WAIT状态下,接收到一个窗口外的序列号或不可接受的ACK号的段时,是否能够返回一个带有正确的序列号和ACK号的ACK段,并保持在相同的状态。描述:在TCP连接的CLOSE-WAIT状态下,如果接收到一个序列号超出当前窗口或ACK号不可接受的段,TCP必须回应一个空的ACK
  • 2024-05-27基于Selenium+webdriver对Web应用系统进行功能测试
    以Java格式的脚本,在JUnit框架上执行和调试这些脚本。项目语言与架构选项为在pom.xml中添加的依赖在kotlin目录中添加Java类,开始编写测试代码:找到chrome的版本并下载对应版本的chromedriver,在setProperty中将chromedriver.exe的路径完善后就可以开始测试。chromedriver全版
  • 2024-05-26Java常用的三个方法 `wait ` `notify` `notifyAll`
    常用的三个方法waitnotifynotifyAllwait();方法使当前线程进入等待状态,直到另一个线程调用该对象的notify()或notifyAll()方法来唤醒它notify();方法唤醒在该对象上调用wait()方法进入等待状态的一个线程,如果有多个线程在等待,则只会唤醒其中一个线程。notifyAll();方
  • 2024-05-17服务器减少TIME_WAIT连接数
    可使用命令netstat-n|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}'查看服务器端的等待连接数 化tcptimewait的操作可以参考下方:编辑内核文件/etc/sysctl.conf,加入以下内容:net.ipv4.tcp_syncookies=1表示开启SYNCookies。当出现SYN等待队列溢
  • 2024-05-16Java-线程-wait()、notify()和notifyAll()
    0.是什么(What)wait(),notify(),和notifyAll()方法都是Object类的一部分,用于实现线程间的协作。1.为什么(Why)线程的执行顺序是随机的(操作系统随机调度的,抢占式执行),但是有时候,我们希望的是它们能够顺序的执行。所以引入了这几个方法,使得我们能保证一定的顺序。1.1Objec类
  • 2024-05-16openGauss 执行-SQL-语句时-提示-Lock-wait-timeout
    执行SQL语句时,提示Lockwaittimeout问题现象执行SQL语句时,提示"Lockwaittimeout"。ERROR:Lockwaittimeout:thread140533638080272waitingforShareLockonrelation16409ofdatabase13218after1200000.122msERROR:Lockwaittimeout:thread1405336380
  • 2024-05-13TCP TIME_WAIT状态优化
    一般来讲,在高并发的场景中,出现TIME_WAIT连接是正常现象,一旦四次握手连接关闭之后,这些连接也就随之被系统回收了 但是在实际高并发场景中,很有可能会出现这样的极端情况——大量的TIME_WAIT连接 TIME_WAIT状态连接过多的危害 TIME_WAIT状态下,TCP连接占用的本地端口将一直
  • 2024-05-12TCP的四次挥手过程
    TCP连接是双向传输的对等的模式(全双工模式),就是说双方都可以同时向对方发送或接收数据。而断开的时候,也是双方都可以主动断开,此时需要经过四次挥手的过程,流程如下图所示:主动方发送FIN包给被动方,主动方状态变成FIN_WAIT_1,等待被动方的确认。此时主动方不能再发送数据。被动方收