c++ 智能指针总结
内存管理 堆 定义:动态分配内存的区域 c++会设计到的两个有关内存管理器的操作 让内存管理器分配一个某大小的内存块 分配内存要考虑程序当前已经有多少未分配的内存 内存不足时要从操作系统申请新的内存;内存充足时,从可用内存里取出一块合适大小的内存,将其标记为已用,再将其返回给要求内存的代码 让内存管 ...
IO、NIO、BIO傻傻分不清吗,让我对象告诉你~~
1、Stream 与 Channel stream 不会自动缓冲数据,channel 会利用系统提供的发送缓冲区、接收缓冲区(更为底层) stream 仅支持阻塞 API,channel 同时支持阻塞、非阻塞 API,网络 channel 可配合 selector 实现多路复用 二者均为全双工,即读 ...
异常
异常 一、基本介绍 基本概念: Java语言中,将程序执行中发生的不正常情况称为 “异常”。(开发过程中的语法错误和逻辑错误不是异常) 执行过程中所发生的异常事件可以分为两类 Error(错误):Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverf ...
机器学习——果蔬分类
一、选题的背景 为了实现对水果和蔬菜的分类识别,收集了香蕉、苹果、梨、葡萄、橙子、猕猴桃、西瓜、石榴、菠萝、芒果、黄瓜、胡萝卜、辣椒、洋葱、马铃薯、柠檬、番茄、萝卜、甜菜根、卷心菜、生菜、菠菜、大豆、花椰菜、甜椒、辣椒、萝卜、玉米、甜玉米、红薯、辣椒粉、生姜、大蒜、豌豆、茄子共36种果蔬的图像。该项 ...
【JVM】根节点枚举与安全点
本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 转载请在文首注明出处,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境! 根节点枚举与安全点 什么是根节点枚举 HotSpot使用的是可达性分 ...
<八>lambda表达是应用实践
既然lambda表达式只能使用在语句中,如果想跨语句使用之前定义好的lambda表达式,怎么办?用什么类型来表示lambda表达式? 用function类型来表示函数对象类型 bind1st/bind2nd bind 绑定器返回的都是 函数对象 lambda表达式=>函数对象 示例1 map<int ...
看完这篇,还不懂JAVA内存模型(JMM)算我输
欢迎关注专栏【JAVA并发】 前言 开篇一个例子,我看看都有谁会?如果不会的,或者不知道原理的,还是老老实实看完这篇文章吧。 @Slf4j(topic = "c.VolatileTest") public class VolatileTest { static boolean run = true; ...
深刻理解JAVA并发中的有序性问题和解决之道
问题 Java并发情况下总是会遇到各种意向不到的问题,比如下面的代码: int num = 0; boolean ready = false; // 线程1 执行此方法 public void actor1(I_Result r) { if(ready) { r.r1 = num + num; } ...
C++ 之 宏定义
宏在 C 语言中非常重要,但在 C++ 中却无甚大用,普遍的共识:尽量避免使用宏 C++ 之父 Bjarne 在《C++ Programming Language》中写到 Avoid macros 《Effective C++》 条款 2 Prefer const, enum, and inline ...
【深入浅出 Yarn 架构与实现】3-2 Yarn Client 编写
上篇文章介绍了编写 Yarn Application 的整体框架流程,本篇文章将详细介绍其中 Client 部分的编写方式。 一、Yarn Client 编写方法 本篇代码已上传 Github: Github - MyYarnClient 一)编写流程 1、创建并启动 Client YarnClie ...
Rust Aya 编写 eBPF 程序
本文地址:https://www.ebpf.top/post/ebpf_rust_aya 1. 前言 Linux 内核 6.1 版本中有一个非常引人注意的变化:引入了对 Rust 编程语言的支持。Rust 是一种系统编程语言,Rust 通过提供非常强大的编译时保证和对内存生命周期的明确控制。在内核开 ...
《Go 语言并发之道》读书笔记(一)
已经把《Go 语言并发之道》通读了一遍,非常不错的一本书,对于理解掌握Go语言的并发知识有很大的帮助,接下来我会把书中有用的知识通过代码示例出来,把一些比较好的知识点记录下来。 首先我们来看一段代码 var data int go func() { data++ }() if data == 0 { ...