线程池 | Result、Task类
线程池 | Result、Task类1.Task类123456789101112131415//任务抽象基类class Task{public: Task(); ~Task() = default; void exec(); void setResult(Result* res); //用户可以自定义任意任务类型,从Task继承,重写run方法,实现自定义任务处理 virtual Any run() = 0;private: //不用shared是避免了智能指针交叉引用的问题 Result* result_;//Result 的生存周期要长于Task}; 使用时,用户自己定义一个mytask类继承Task类,重写run方法完成自己想要的任务即可。 exec就是用来执行run()方法的一个包装函数 123456789101112131415//////////Task方法实现Task::Task():result_(nullptr){}void Task::exec(){ if (result_ !=...
线程池 | Any、Semaphore类
线程池 | Any、Semaphore类1.Any类123456789101112131415161718192021222324252627282930313233343536373839404142434445464748//Any类 表示可以接受任意数据的类型class Any{public: Any() = default; ~Any() = default; Any(const Any&) = delete; Any& operator=(const Any&) = delete; Any(Any&&) = default; Any& operator=(Any&&) = default; //这个构造函数可以让Any类型接受任意其它的数据 template <typename T> Any(T...
线程池项目总概述
线程池项目环境:vs2019开发,C++17标准;centos7编译so动态库 1.项目介绍作为五大池之一(内存池、连接池、线程池、进程池、协程池),线程池的应用非常广泛,不管是客户 端程序,还是后台服务程序,都是提高业务处理能力的必备模块。有很多开源的线程池实现,虽然各自 接口使用上稍有区别,但是其核心实现原理都是基本相同的。 2.知识背景熟练C++面向对象编程和C++ 11编程 1.熟练基于C++...
泰坦尼克号生存的预测任务
泰坦尼克号生存的预测任务学校作业,我来水一水 环境:pycharm+anaconda虚拟环境 0.环境搭建参考:学校机器学习_为了前进而后退,为了走直路而走弯路的博客-CSDN博客 1 目的与要求(1)目的: 本任务旨在使用机器学习算法预测泰坦尼克号乘客的生存情况。根据乘客的个人信息(如年龄、性别、船舱等级等),使用合适的模型来判断该乘客是否在事故中幸存。模型将对给定的测试集进行预测,并生成预测结果。(2)采用不同的机器学习算法进行建模(如:决策树、朴素贝叶斯、支持向量机)。对模型的性能进行评估,计算准确率。对比不同模型的准确率,通过可视化手段展示结果(如准确率折线图、混淆矩阵等)。输出每个模型的可视化结果并保存(如决策树的图示、特征重要性等)。 2 任务背景泰坦尼克号(RMS Titanic)是世界历史上最著名的沉船之一,1912年4月15日沉没。在事故中,约有1500多人失去了生命。根据该事件的相关数据集(包含乘客的个人信息及生死状态),我们可以构建模型预测乘客的生存概率。数据集包含的特征有:乘客的年龄、性别、船舱等级、票价、家庭成员数量等。 3...
基于VSCode和CMake实现的C/C++开发-Linux篇
基于VSCode和CMake实现的C/C++开发-Linux篇本次课程适合的对象: Linux零基础,想了解最常用的高频Linux命令的小伙伴 只会在Windows开发C/C++,需要转Linux开发的小伙伴 想深入了解并掌握GCC编译器编译语法和规则的小伙伴 想深入了解并掌握GDB调试器命令行调试的小伙伴 想学习使用CMake构建**C/C++**工程的小伙伴 想学习Linux下使用VSCode进行**C/C++**开发的小伙伴 总而言之,本课程将从零开始,教会你如何在Linux开发C/C++,带领你一起打开新世界的大门~ 系统环境:Ubuntu18.04 LTS 虚拟机 开发语言:C++ 开发IDE ...
Windows下Python+PyCharm的安装步骤及PyCharm的使用
Windows下Python+PyCharm的安装步骤及PyCharm的使用一、Python的安装(1)环境准备python是一门跨平台的语言,如Windows、Linux、MacOS等平台都能完美兼容,以下只对Windows平台安装做详细介绍。 Windows PC python3.6.4 python官方下载:Python Releases for Windows | Python.org,可根据自己需要下载版本。 我下载的是python3.6.4,比较老的一个版本了,选择Download Windows x86-64 executable installer,下载64位的: 注意:“x86”是指32位的操作系统,“x86-64”是指64位的操作系统。 (2)Python安装 python安装非常简单,双击下载好的安装包,进入选择安装方式 第一种:Install Now 立即安装,即采用默认安装方式,不能自行指定安装的路径。 第二种:Customize installation...
pycharm+anaconda创建项目
pycharm+anaconda创建项目安装: Windows下Python+PyCharm的安装步骤及PyCharm的使用-CSDN博客 详细Anaconda安装+配置+环境创建教程-CSDN博客 创建项目: 开始尝试新建一个项目吧!选择好项目建设的文件夹我的项目命名为:pythontset,选择自定义环境-select existing(已存在环境),类型可选择conda(这就是前边已经配置好的anaconda环境),点击创建。这里我的test项目就已经创建完成了输入print(“hello world”), 运行一下试试看! 成功。
详细Anaconda安装+配置+环境创建教程
详细Anaconda安装+配置+环境创建教程一、Anaconda简介Anaconda 是一个开源的 Python 和 [R 语言](https://so.csdn.net/so/search?q=R 语言&spm=1001.2101.3001.7020)的发行版本,主要用于数据科学、机器学习和科学计算。它包含了大量的科学计算库和工具,并且提供了一个方便的环境管理工具,使得用户可以轻松地创建、管理和切换不同的 Python 环境。(我使用的原因是可以方便的切换python环境,每个环境包与包的版本不冲突,以及可以很方便的导入与导出包,最主要的原因是我的科研需要使用Deeplabcut,用anaconda比较方便) Anaconda 的主要特点 包管理: Anaconda 使用 conda 作为包管理工具,可以方便地安装、更新和删除 Python 包。 支持多种操作系统和平台(Windows、macOS、Linux)。 环境管理: Anaconda 允许用户创建独立的 Python 环境,每个环境可以有不同的 Python 版本和包依赖。 使用...
修改成清华镜像源解决Anaconda报The channel is not accessible源通道不可用问题
修改成清华镜像源解决Anaconda报The channel is not accessible源通道不可用问题最近在通过pycharm开发python程序,引用anaconda环境建立虚拟环境时报错,报UnavailableInvalidChannel: The channel is not accessible or is invalid.应该是镜像源访问通道无法访问或无效。现将解决办法记录如下: 环境说明:操作系统:win10安装有anaconda 4.10.3pycharm2021.2 报错现象:在pycharm中新建python项目,引用anaconda建立虚拟环境时报错报“UnavailableInvalidChannel: The channel is not accessible or is invalid.” 或者执行命令遇到这种情况 解决办法:1、找到anaconda的源配置文件配置文件.condar.c一般都在c/user/用户名这个目录里面 根据报错的建议提示: You will need to ajust your conda...
Day55 | 灵神 | 相向双指针:盛最多水的容器&&接雨水
Day55 | 灵神 | 相向双指针:盛最多水的容器&&接雨水盛最多水的容器 接雨水_哔哩哔哩_bilibili 11.盛最多水的容器11. 盛最多水的容器 - 力扣(LeetCode) 这道题就不太能想到思路了(悲) 思路: 还是使用相向双指针 我们随便挑两根柱子,就比如图中的两根,左边的下标为l,右边的下标为r,那么能接的水就是 1sum=min(height[l],height[r])*(r-l) 首先先找出短的一端,然后固定它,(为什么找短端而不找长端?这个稍后解释)这个例子中r比较短,那么就固定r。此时接水总量为 1sum1=height[r]*(r-l) 分类讨论: 1.假设在l和r中间,找到一根比height[r]要小的柱子k来当左端 1sum2=height[k]*(r-k) 由于 12height[r]>height[k]r-l>r-k ...