- 《第四十九篇 这个天天用》 《第四十九篇 这个天天用》
- 《第四十七篇 这个很简单的》 《第四十七篇 这个很简单的》
- 《第四十五篇 始化过程中如何解析》 《第四十五篇 始化过程中如何解析》
- 《第四十三篇 这个必须掌握我经常用》 《第四十三篇 这个必须掌握我经常用》
- 在优化程序的加锁方式时,竟然出现了死锁!!到底是为什么呢?!经过仔细的分析之后,终于找到了原因。 在优化程序的加锁方式时,竟然出现了死锁!!到底是为什么呢?!经过仔细的分析之后,终于找到了原因。
- 一文秒懂Happens-Before原则 一文秒懂Happens-Before原则
- 位于J.U.C(java.util.concurrent)中,是Java7中提供的用于执行并行任务的框架,其可以将大任务分割成若干个小任务,最终汇总每个小任务的结果后得到最终结果。基本思想和Hadoop的MapReduce思想类似。 主要采用的是工作窃取算法(某个线程从其他队列里窃取任务来执行),并行分治计算中的一种Work-stealing策略 位于J.U.C(java.util.concurrent)中,是Java7中提供的用于执行并行任务的框架,其可以将大任务分割成若干个小任务,最终汇总每个小任务的结果后得到最终结果。基本思想和Hadoop的MapReduce思想类似。 主要采用的是工作窃取算法(某个线程从其他队列里窃取任务来执行),并行分治计算中的一种Work-stealing策略
- 回顾一下,我们前面学习了进程创建,进程终止,进程等待,进程替换,通过这些内容我们可以来进行实现简单的shell命令行解释器!!!下面我们直接来看一看如何去实现shell命令行解释器:总体分为(整体需要循环哦):1.输出提示符2.输入和获取命令3.fork创建子进程4.内建命令输出提示符这里的提示字符为用户名@主机名 当前路径# 直接打印出来作为提示所用,也可以自己设置成其他的,问题不大pri... 回顾一下,我们前面学习了进程创建,进程终止,进程等待,进程替换,通过这些内容我们可以来进行实现简单的shell命令行解释器!!!下面我们直接来看一看如何去实现shell命令行解释器:总体分为(整体需要循环哦):1.输出提示符2.输入和获取命令3.fork创建子进程4.内建命令输出提示符这里的提示字符为用户名@主机名 当前路径# 直接打印出来作为提示所用,也可以自己设置成其他的,问题不大pri...
- @[toc] 一、再识fork()对于fork我们是比较熟悉的了,现在我们可以在来看看fork👇fork()函数两个返回值问题fork()函数的实现在操作系统内部,函数准备return的时候核心代码已经执行完,子进程早已经被创建,并且可能在OS的运行队列中,准备被调度。fork之后,有两个执行流,父子进程代码是共享的,所以return会被调度两次,被父子进程各自执行return的。理解父进... @[toc] 一、再识fork()对于fork我们是比较熟悉的了,现在我们可以在来看看fork👇fork()函数两个返回值问题fork()函数的实现在操作系统内部,函数准备return的时候核心代码已经执行完,子进程早已经被创建,并且可能在OS的运行队列中,准备被调度。fork之后,有两个执行流,父子进程代码是共享的,所以return会被调度两次,被父子进程各自执行return的。理解父进...
- @[toc] 一、是什么回顾我们学习C/C++时的地址空间:有了这个基本框架,我们对于语言的学习更加易于理解,但是地址空间究竟是什么❓我们对其并不了解,是不是内存呢?对于是什么这个问题,我们需要通过一个例子来进行切入,见一见现象下面我们通过代码看现象:我们发现子进程把全局变量global_value修改之后,子进程和父进程的值是不同的,这些我们都能理解,因为进程之间具有独立性。但是这里glo... @[toc] 一、是什么回顾我们学习C/C++时的地址空间:有了这个基本框架,我们对于语言的学习更加易于理解,但是地址空间究竟是什么❓我们对其并不了解,是不是内存呢?对于是什么这个问题,我们需要通过一个例子来进行切入,见一见现象下面我们通过代码看现象:我们发现子进程把全局变量global_value修改之后,子进程和父进程的值是不同的,这些我们都能理解,因为进程之间具有独立性。但是这里glo...
- 📝一、操作系统进程进程不同的状态本质都是在满足不同的运行场景的 1.运行队列运行队列进程如何在CPU上运行的:CPU在内核上维护了一个运行队列,进行进程的管理。让进程入队列,本质就是将该进程的task_struct 结构体对象放入运行队列之中。 2.运行状态运行状态进程PCB在运行队列里就是运行状态,不是说这个进程正在运行,才是运行状态。状态是进程内部的属性,所有的属性在PCB里进程不只... 📝一、操作系统进程进程不同的状态本质都是在满足不同的运行场景的 1.运行队列运行队列进程如何在CPU上运行的:CPU在内核上维护了一个运行队列,进行进程的管理。让进程入队列,本质就是将该进程的task_struct 结构体对象放入运行队列之中。 2.运行状态运行状态进程PCB在运行队列里就是运行状态,不是说这个进程正在运行,才是运行状态。状态是进程内部的属性,所有的属性在PCB里进程不只...
- 线程安全问题概述 卖票问题分析单窗口卖票一个窗口(单线程)卖100张票没有问题单线程程序是不会出现线程安全问题的多个窗口卖不同的票3个窗口一起卖票,卖的票不同,也不会出现问题多线程程序,没有访问共享数据,不会产生问题多个窗口卖相同的票3个窗口卖的票是一样的,就会出现安全问题多线程访问了共享的数据,会产生线程安全问题 线程安全问题代码实现模拟卖票案例创建3个线程,同时开启,对共享的票进行出售... 线程安全问题概述 卖票问题分析单窗口卖票一个窗口(单线程)卖100张票没有问题单线程程序是不会出现线程安全问题的多个窗口卖不同的票3个窗口一起卖票,卖的票不同,也不会出现问题多线程程序,没有访问共享数据,不会产生问题多个窗口卖相同的票3个窗口卖的票是一样的,就会出现安全问题多线程访问了共享的数据,会产生线程安全问题 线程安全问题代码实现模拟卖票案例创建3个线程,同时开启,对共享的票进行出售...
- 微服务治理专题主要探讨运行时治理。隔离仓是适用于大部分故障模式,简单有效的治理策略,本章介绍隔离仓的原理和作用。 微服务治理专题主要探讨运行时治理。隔离仓是适用于大部分故障模式,简单有效的治理策略,本章介绍隔离仓的原理和作用。
- Lock锁接口方法前面了解到了synchronized锁,也知道了synchronized锁是一种JVM提供内置锁,但synchronized有一些缺点:比如不支持响应中断,不支持超时,不支持以非阻塞的方式获取锁等。而今天的主角Lock锁,需要我们手动获取锁和释放锁,里面有很多方式来获取锁,比如以阻塞方式获取锁,在指定时间内获取锁,非阻塞模式下抢占锁等,其方法源码如下(位于package ... Lock锁接口方法前面了解到了synchronized锁,也知道了synchronized锁是一种JVM提供内置锁,但synchronized有一些缺点:比如不支持响应中断,不支持超时,不支持以非阻塞的方式获取锁等。而今天的主角Lock锁,需要我们手动获取锁和释放锁,里面有很多方式来获取锁,比如以阻塞方式获取锁,在指定时间内获取锁,非阻塞模式下抢占锁等,其方法源码如下(位于package ...
- 多线程的线程安全@[toc]线程安全是多线程的重点和难点,一定要好好理解线程安全 : 在多线程各种随机的调度顺序下,代码都没有bug,都能符合 预期的方式执行什么是bug : 不符合需求就算是bug举一个实例来验证线程安全class Counter{ public int count = 0; public void increase(){ count++; ... 多线程的线程安全@[toc]线程安全是多线程的重点和难点,一定要好好理解线程安全 : 在多线程各种随机的调度顺序下,代码都没有bug,都能符合 预期的方式执行什么是bug : 不符合需求就算是bug举一个实例来验证线程安全class Counter{ public int count = 0; public void increase(){ count++; ...
上滑加载中
推荐直播
-
基于HarmonyOS NEXT应用开发之旅
2025/07/17 周四 19:00-20:00
吴玉佩、刘俊威-华为开发者布道师-高校学生
两位学生华为开发者布道师,连续两届HarmonyOS极客马拉松获奖选手联袂呈现HarmonyOS NEXT开发全景!从基础筑基,到工具提效。为您铺就一条从入门到精通的鸿蒙应用开发之路。无论您是新手开发者,还是经验老手,都能在此收获满满干货,开启您的HarmonyOS NEXT高效、智能开发新篇章!
回顾中
热门标签