- 博客(27)
- 收藏
- 关注
原创 C++多线程同步和加锁的方式
推荐使用std::lock_guard或std::unique_lock等封装类,他们可以在构造时自动加锁,在析构式自动解锁,从而简化代码并减少死锁风险。条件变量用于线程间的等待和唤醒操作,通常与互斥锁一起使用,C++标准库提供了std::condition_variable和std::condition_variable_any类来实现条件变量。递归锁是互斥锁的一种特殊形式,允许同一线程多次获得锁而不会导致死锁,C++标准提供了std::recursive_mutex类来实现递归锁。
2024-10-23 14:43:45
522
原创 什么是虚函数和纯虚函数?以及区别
被virtual关键字修饰的成员函数。在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数。其用法格式为:virtual 函数返回类型 函数名(参数表){函数体}。特性:虚函数实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。实现:虚函数既有定义,也有实现的代码。类对象:包含虚函数的类可以定义其对象。
2024-10-23 14:39:14
664
原创 线程同步方式-互斥锁与信号量的对比
互斥锁主要用于单个资源的互斥访问,即“锁住某一资源”的概念。信号量则更适用于多个同类资源的同步访问,其计数器可以表示可用资源的数量。● 操作方式:互斥锁的加锁和解锁必须由同一线程分别对应使用。信号量则允许一个线程释放信号量,另一个线程获得信号量。● 灵活性:信号量相对于互斥锁具有更高灵活性,因为它可控制多个资源的访问,而互斥锁只能控制单个资源的访问。● 系统开销:互斥锁和信号量都需要消耗一定的系统资源,但信号量由于引入了计数器机制,其开销可能相对更大一些。
2024-10-23 14:36:56
310
原创 智能指针unique_ptr与auto_ptr的区别
当一个auto_ptr被复制到另一个auto_ptr时,原来的auto_ptr会失去对内存的所有权,而新的auto_ptr将获得所有权。当所有权从一个unique_ptr转移到另一个unique_ptr时,原来的unique_ptr会被置为nullptr,从而避免了内存泄漏和悬空指针的问题。而auto_ptr的复制操作实际上是所有权转移,这违反了STL容器的要求。● auto_ptr:在异常发生时,如果auto_ptr所管理的资源没有被正确释放,可能会导致资源泄漏。
2024-10-23 14:34:17
252
原创 TCP/IP详解
TCP/IP协议栈通过各层之间的协同工作,确保了数据在网络中的可靠传输。每一层都使用不同的协议来实现特定的任务,共同构成了现代计算机网络通信的基础。了解TCP/IP协议栈的工作原理对于深入理解计算机网络的工作过程具有重要意义。
2024-10-23 14:27:47
646
原创 新装的Centos7虚拟机没有网络怎么办?
2、 找到 /etc/sysconfig/network-scripts/ifcfg-ens33 该文件使用vi进行编辑;systemctl restart network 或者 service network restart。1、Vmware 右击虚拟机 -> 网络适配器 -> 选择桥接模式;3、把 ONBOOT的值改为yes,保存退出;4、重启网络服务,完成;
2023-10-16 17:04:48
496
原创 ascii编码与utf8互转、ascii编码与unicode互转、utf8与unicode互转(C语言、c++)
【代码】ascii编码与utf8互转、ascii编码与unicode互转、utf8与unicode互转(C语言、c++)
2023-10-12 15:03:34
2493
原创 vs2013调试JNI接口
命令参数:java -DFile.encoding=UTF8 -classpath "class文件路径;" class文件名称;注意:main.java中需要编写调用接口代码;命令:java的可执行程序全路径;生成Main.class文件;
2023-06-28 15:40:44
395
1
原创 CreateFile用法详解
CreateFile可以用来打开很多设备,例如:文件、目录、串口、并口、邮件槽、命名管道、逻辑磁盘驱动器、物理磁盘驱动器等。
2023-06-21 14:36:02
1081
原创 linux-Ubuntu常用命令
tar -zvxf 文件名 /目录 解压 tar -cvzf(起个包名) /目录 打包cd 切换目录ls 查看当前文件夹下的文件名或目录名 ls -l 查看权限 r (read 可读,) w (write写入) x(executable 可执行)ll 查看当前文件夹下的文件的详细信息 (ll不是一个基本命令,ls -l)chmod修改权限(777可读可写可执行) (r-w-x 读-写-可执行 4-2-1)ps -ef | grep 程序名 ..
2021-06-25 11:37:59
139
原创 Ubuntu查看、开启、关闭防火墙命令
Ubuntu查看防火墙状态:sudo ufw status—关闭sudo ufw disable—开启sudo ufw enable
2021-06-25 11:30:34
617
原创 strcat 、strcpy、strcmp常用的字符串处理函数
strcat 、strcpy、strcmp常用的字符串处理函数:1. strcat:stract是string catenate的缩写,此函数有两个字符数组参数,函数的作用是将第二个字符数组中的字符串连接到第一个字符数组的字符串后面。例如: char str01[10] ="Hello "; char str02[10] = "World"; cout << strcat(str01,str02);结果为: Hello World注意:第二个参数为字符型常数组,应为:strc
2021-02-18 10:59:17
1662
原创 Ubuntu中配置jdk环境变量
Ubuntu中配置jdk环境变量:一般jdk都存放在 /usr/local/java 文件夹当中:创建目录:cd /usr/local ##这个是打开目录mkdir java ##创建java文件夹然后把下载好的jdk文件,一般结尾是tar.gz,或者tar,或者zip,都可以,不过使用解压命令的时候要注意。解压完毕之后,修改一个环境文件:vim /etc/environment ##打开这个这个文件##打开之后把光标移动到文件的末尾,进行添加下面的命令:e
2021-02-05 11:34:39
7114
2
原创 简谈C语言中的指针
简谈C语言中的指针:1.指针是什么?当程序中定义了一个变量,那么在对程序进行编译的时候,系统会给这个变量分配内存单元;内存区中的每一个字节都有一个编号,这就是“地址”;通过这个地址就可以找到定义的变量,也就是说地址指向该变量;那么将该地址就可以形象化的称为“指针”。2.定义指针变量类型名 * 指针变量名例如:int * pointer_1;3.编写程序#include<stdio.h>int main() { int a=10,b=20; //初始化变量a,b
2021-01-29 13:53:56
131
2
原创 Ubuntu下使用shell脚本实现自动输入sudo密码
Ubuntu下使用shell脚本实现自动输入sudu密码#!/bin/bash sudo -S service talend -runtime* status<<EOF你的密码EOF使用以上命令就可以实现使用sudo时,自动输入密码的效果!小编刚刚接触这方面的知识,如果有不准确的地方,欢迎批评指正!...
2021-01-28 15:52:58
2538
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人