积分充值
 首页
前端开发
AngularDartElectronFlutterHTML/CSSJavaScriptReactSvelteTypeScriptVue.js构建工具
后端开发
.NetC#C++C语言DenoffmpegGoIdrisJavaJuliaKotlinLeanMakefilenimNode.jsPascalPHPPythonRISC-VRubyRustSwiftUML其它语言区块链开发测试微服务敏捷开发架构设计汇编语言
数据库
Apache DorisApache HBaseCassandraClickHouseFirebirdGreenplumMongoDBMySQLPieCloudDBPostgreSQLRedisSQLSQLiteTiDBVitess数据库中间件数据库工具数据库设计
系统运维
AndroidDevOpshttpdJenkinsLinuxPrometheusTraefikZabbix存储网络与安全
云计算&大数据
Apache APISIXApache FlinkApache KarafApache KyuubiApache OzonedaprDockerHadoopHarborIstioKubernetesOpenShiftPandasrancherRocketMQServerlessService MeshVirtualBoxVMWare云原生CNCF机器学习边缘计算
综合其他
BlenderGIMPKiCadKritaWeblate产品与服务人工智能亿图数据可视化版本控制笔试面试
文库资料
前端
AngularAnt DesignBabelBootstrapChart.jsCSS3EchartsElectronHighchartsHTML/CSSHTML5JavaScriptJerryScriptJestReactSassTypeScriptVue前端工具小程序
后端
.NETApacheC/C++C#CMakeCrystalDartDenoDjangoDubboErlangFastifyFlaskGinGoGoFrameGuzzleIrisJavaJuliaLispLLVMLuaMatplotlibMicronautnimNode.jsPerlPHPPythonQtRPCRubyRustR语言ScalaShellVlangwasmYewZephirZig算法
移动端
AndroidAPP工具FlutterFramework7HarmonyHippyIoniciOSkotlinNativeObject-CPWAReactSwiftuni-appWeex
数据库
ApacheArangoDBCassandraClickHouseCouchDBCrateDBDB2DocumentDBDorisDragonflyDBEdgeDBetcdFirebirdGaussDBGraphGreenPlumHStreamDBHugeGraphimmudbIndexedDBInfluxDBIoTDBKey-ValueKitDBLevelDBM3DBMatrixOneMilvusMongoDBMySQLNavicatNebulaNewSQLNoSQLOceanBaseOpenTSDBOracleOrientDBPostgreSQLPrestoDBQuestDBRedisRocksDBSequoiaDBServerSkytableSQLSQLiteTiDBTiKVTimescaleDBYugabyteDB关系型数据库数据库数据库ORM数据库中间件数据库工具时序数据库
云计算&大数据
ActiveMQAerakiAgentAlluxioAntreaApacheApache APISIXAPISIXBFEBitBookKeeperChaosChoerodonCiliumCloudStackConsulDaprDataEaseDC/OSDockerDrillDruidElasticJobElasticSearchEnvoyErdaFlinkFluentGrafanaHadoopHarborHelmHudiInLongKafkaKnativeKongKubeCubeKubeEdgeKubeflowKubeOperatorKubernetesKubeSphereKubeVelaKumaKylinLibcloudLinkerdLonghornMeiliSearchMeshNacosNATSOKDOpenOpenEBSOpenKruiseOpenPitrixOpenSearchOpenStackOpenTracingOzonePaddlePaddlePolicyPulsarPyTorchRainbondRancherRediSearchScikit-learnServerlessShardingSphereShenYuSparkStormSupersetXuperChainZadig云原生CNCF人工智能区块链数据挖掘机器学习深度学习算法工程边缘计算
UI&美工&设计
BlenderKritaSketchUI设计
网络&系统&运维
AnsibleApacheAWKCeleryCephCI/CDCurveDevOpsGoCDHAProxyIstioJenkinsJumpServerLinuxMacNginxOpenRestyPrometheusServertraefikTrafficUnixWindowsZabbixZipkin安全防护系统内核网络运维监控
综合其它
文章资讯
 上传文档  发布文章  登录账户
IT文库
  • 综合
  • 文档
  • 文章

无数据

分类

全部后端开发(199)C++(199)Conan(74)

语言

全部英语(170)中文(简体)(28)英语(1)

格式

全部PDF文档 PDF(175)PPT文档 PPT(24)
 
本次搜索耗时 0.052 秒,为您找到相关结果约 199 个.
  • 全部
  • 后端开发
  • C++
  • Conan
  • 全部
  • 英语
  • 中文(简体)
  • 英语
  • 全部
  • PDF文档 PDF
  • PPT文档 PPT
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • pdf文档 Get off my thread: Techniques for moving k to background threads

    Get off my thread: Techniques for moving work to background threads Anthony Williams Just Software Solutions Ltd https://www.justsoftwaresolutions.co.uk September 2020Get off my thread: Techniques for current thread? How do we move work off the current thread? Final Guidelines and QuestionsWhy do we need to move work off the current thread?Why do we need to move work off the current thread? Many environments environments have a dedicated thread for processing events: GUIs Client-Server applications Performing extensive processing on the event thread prevents other events from being handled.Why do we need
    0 码力 | 90 页 | 6.97 MB | 6 月前
    3
  • pdf文档 现代C++ 教程:高速上手C++11/14/17/20

    的分量之重,但它包含了大量小而美的语言与特性(例如结构化绑定), 这些特性的出现再一次修正了我们在 C++ 中的编程范式。 现代 C++ 还为自身的标准库增加了非常多的工具和方法,诸如在语言自身标准的层面上制定了 std::thread,从而支持了并发编程,在不同平台上不再依赖于系统底层的 API,实现了语言层面的跨 平台支持;std::regex 提供了完整的正则表达式支持等等。C++98 已经被实践证明了是一种非常成功 > clang++ -v Apple LLVM version 10.0.1 (clang-1001.0.46.4) Target: x86_64-apple-darwin18.6.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin 1.1 被弃用的特性 在学习现代 C++ 之前,我们先了解一下从 noexcept。 • auto_ptr 被弃用,应使用 unique_ptr。 • register 关键字被弃用,可以使用但不再具备任何实际含义。 • bool 类型的 ++ 操作被弃用。 • 如果一个类有析构函数,为其生成拷贝构造函数和拷贝赋值运算符的特性被弃用了。 • C 语言风格的类型转换被弃用(即在变量前使用 (convert_type)),应该使用 static_cast、 reinte
    0 码力 | 83 页 | 2.42 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 05 C++11 开始的多线程编程

    double_ms 作为 duration 的别名 跨平台的 sleep : std::this_thread::sleep_for • 可以用 std::this_thread::sleep_for 替代 Unix 类操作系统专有的的 usleep 。他可 以让当前线程休眠一段时间,然后继续。 • 而且单位也可以自己指定,比如这里是 milliseconds milliseconds 表示毫秒,也可以换成 microseconds 表示微秒, seconds 表示 秒, chrono 的强类型让单位选择更自由 。 睡到时间点: std::this_thread::sleep_until • 除了接受一个时间段的 sleep_for ,还有 接受一个时间点的 sleep_until ,表示让当 前线程休眠直到某个时间点。 第 1 章:线程 进程与线程 • 下载完成前,整个界面都会处于“未响应”状 态,用户想做别的事情就做不了。 现代 C++ 中的多线程: std::thread • C++11 开始,为多线程提供了语言级别的 支持。他用 std::thread 这个类来表示线 程。 • std::thread 构造函数的参数可以是任意 lambda 表达式。 • 当那个线程启动时,就会执行这个 lambda 里的内容。
    0 码力 | 79 页 | 14.11 MB | 1 年前
    3
  • pdf文档 《深入浅出MFC》2/e

    MFCCON:MFC Console 程式設計 / 035 * 什麼是 C Runtime Library 的多緒版本 / 038 行程與執行緒(Process and Thread) / 039 核心物件 / 039 ㆒個行程的誕生與死亡 / 040 產生子行程 / 041 ㆔個觀念:模組、行程、執行緒 / 746 執行緒優先權(Priority) / 748 執行緒排程(Scheduling) / 751 Thread Context / 751 從程式設計層面看執行緒 / 752 Worker Threads 和 UI Threads / 754 MFC 多緒程式設計 / 755 探索 CWinThread / 755 產生㆒個 Worker Thread / 759 產生㆒個 UI Thread / 761 執行緒的結束 / 763 執行緒與同步控制 / 763 MFC 多緒程式實例
    0 码力 | 1009 页 | 11.08 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串

    这些整数就用于是表示这些 可显示字符 (printable character) 的。 计算机如何表达字符 • 除了可显示字符 (printable character) 外, ASCII 还规定了一 类特殊的控制字符 (control character) : • 0 表示空字符(‘ \0’ ) • 9 表示 Tab 制表符(‘ \t’ ) • 10 表示换行(‘ \n’ ) • 13 表示回车(‘ 命令行中启动 cat 。 • 试试按 Ctrl+R , Ctrl+E , Ctrl+C 等一系列 组合键,看到出现了什么? • 可以看到显示的字符变成了 ^R ^E ^C 等… … • 这是 Unix 类系统显示控制字符的一种方式 。 • 众所周知,我们常用 Ctrl+C 来发送中断信号 ( SIGINT )强制终止程序,这时常常会看到 一个 ^C 的字样,就是这样出现的。这里我 们的 cat 程序收到 函数内部在运行时处理了 % 的下一个字符。 • % 就像你和同学随手“拉钩”定下的约定,这是 printf 约定俗成的。 • \ 就像正式合同,有法律效力的,这是 C 语言编译器规定好的。 C++ 字符串类 第 3 章 C 语言字符串操作繁琐 封装的 std::string 应运而生 封装的 std::string 应运而生 • string 可以从 const char * 隐式构造: • string
    0 码力 | 162 页 | 40.20 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 06 TBB 开启的并行编程之旅

    全局队列里去。每个线程空闲时会不断地从那个 队列里取出数据,即“认领任务”。然后执行,执行 完毕后才去认领下一个任务,从而即使每个任务 工作量不一也能自动适应。 • 这种技术又称为线程池( thread pool ),避免了 线程需要保存上下文的开销。但是需要我们管理 一个任务队列,而且要是线程安全的队列。 struct Task { int x0, y0; int nx, ny; 这样 lambda 体内 r 的 begin 和 end 也会返回 tbb::concurrent_vector 的迭代 器类型。 • 第一个 tbb::blocked_range 尖括号里的类 型可以省略是因为 C++17 的 CTAD 特 性。第二个则是用了 decltype 自动推导 ,也可以 (auto r) ,这里写具体类型仅为 教学目的。 TBB 中其他并发容器 第 7 动态追加数据 基本没有加速,我猜想 concurrent_vector 内部可能 用了简单粗暴的互斥量,只保证了安全,并不保证高 效 加速比: 1.32 倍 并行筛选 2 先推到线程局部( thread-local )的 vector 最后一次性推入到 concurrent_vector 可以避免频繁在 concurrent_vector 上产生锁竞争 加速比: 5.55 倍 并行筛选 3
    0 码力 | 116 页 | 15.85 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程

    • 当前线程在板块中的编号: threadIdx • 当前板块中的线程数量: blockDim • 当前板块的编号: blockIdx • 总的板块数量: gridDim • 线程 (thread) :并行的最小单位 • 板块 (block) :包含若干个线程 • 网格 (grid) :指整个任务,包含若干个板块 • 从属关系:线程<板块<网格 • 调用语法: <<类,比如这 个文件: • /opt/cuda/samples/common/inc/helper_cuda.h • 把他和 helper_string.h 一起拷到头文件目录里,然后改一 下 CMakeLists lexible-kernels-grid-stride-loops/ 第 4 章: C++ 封装 std::vector 的秘密:第二模板参数 • 你知道吗? std::vector 作为模板类,其实有两个模板参数: std::vector • 那为什么我们平时只用了 std::vector 呢?因为第二个参数默认是 std::allocator 。
    0 码力 | 142 页 | 13.52 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化

    既能高效利用内存 ,随机访问和插桩又特别高效。有兴趣可以研究一下他们的论文,也用了莫顿序增强 TLB 和缓存的局域性,非常精彩。 vector 也可以不初始化:只需使用一个帮手类 也可以使用小彭老师封装好的帮手类 重复分配效率低 • 即使第二次分配的是同一段差不多大小的内存,也是会产生缺页中断,花费分配时间的。 • glibc 的 malloc 实现,不会重复利用现有的内存。 改用 tbbmalloc func 都会重 复内存分配一次(进入一次内核态),非 常浪费时间。 解决:手动池化 • 声明为 static 变量,这样第二次进入 func 的时候还是 同一个数组,不需要重复分配内存。 thread_local 表示 如有多个线程,每个线程保留一个 tmp 对象的副本, 防止多线程调用 func 出错。 • 返回时(或者进入时)调用 tmp.clear() 清除已有数据。 由于 vector 正确的遍历顺序和错误的遍历顺序,速度 相差了 20 倍。其中一部分是因为每个缓存 行只用到了 1/16 造成的,一部分是因为跳 跃的访存让 CPU 没有办法自动预取造成的 。 封装成 ndarray 类 ndarray.h ,同学们可以在作业或 是自己的项目里随意使用。 不要再用 Java 式的二层三层指针 了,用 ndarray<2, float> 声明一 个二维浮点数组, ndarray<3,
    0 码力 | 147 页 | 18.88 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - Zeno 中的现代 C++ 最佳实践

    o2 • Zeno 1.0 所在的分支: https://github.com/zenustech/zeno/ Zeno 中的基本类型 • IObject 一切对象的公共基类。 • INode 一切节点的公共基类。 多态的经典案例 • IObject 具有一个 eatFood 纯虚函数,而 CatObject 和 DogObject 继承自 IObject ,他 们实现了 eatFood m_catFood 。所以 这里的解构函数也是多态的,他根据类型的不同 调用不同派生类的解构函数。 多态用于设计模式之“模板模式” • 这样之后如果有一个任务是要基于 eatFood 做文章,比如要重复 eatFood 两遍。 • 就可以封装到一个函数 eatTwice 里,这个函数只需接受他们共同的基类 IObject 作为参数,然后调 用 eatFood 这个虚函数来做事(而不是直接操作具体的猫和狗本身)。 指针所指向的类型,也就是当前所在类的类型 。 • 宏的缺点是他不遵守命名空间的规则,宏的名 字是全局可见的,不符合 C++ 的高大尚封装思 想。 • 宏: IOBJECT_DEFINE_CLONE • 高大尚 C++ 封装: zeno::IObject::clone() 如何批量定义 clone 函数? • 另一种方法是定义一个 IObjectClone 模板 类。其模板参数是他的派生类 Derived
    0 码力 | 54 页 | 3.94 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理

    C++17 标准,有时会谈到 C++20 作为扩展阅读。 C++ 有哪些面向对象思想? C++ 思想:封装 比如要表达一个数组,需要:起始地址指针 v ,数组大小 nv 将多个逻辑上相关的变量包装成一个类 因此 C++ 的 vector 将他俩打包起来,避免程序员犯错 封装:不变性 比如当我要设置数组大小为 4 时,不能只 nv = 4 还要重新分配数组内存,从而修改数组起始地址 v 常遇到: 为成员函数 不变性:请勿滥用封装 • 仅当出现“修改一个成员时,其他也成员要 被修改,否则出错”的现象时,才需要 getter/setter 封装。 • 各个成员之间相互正交,比如数学矢量类 Vec3 ,就没必要去搞封装,只会让程序员 变得痛苦,同时还有一定性能损失:特别 是如果 getter/setter 函数分离了声明和定 义,实现在另一个文件时! C++ 思想: RAII :离不开构造函数 • 如题,那么如何定义构造函数呢? BV1h64y197Fd 自定义构造函数:无参数 自定义构造函数:无参数(使用初始化表达式) 为什么需要初始化表达式? 1. 假如类成员为 const 和引用 2. 假如类成员没有无参构造函数 3. 避免重复初始化,更高效 自定义构造函数:多个参数 自定义构造函数:单个参数 自定义构造函数:单个参数(陷阱) 自定义构造函数:单个参数(避免陷阱)
    0 码力 | 96 页 | 16.28 MB | 1 年前
    3
共 199 条
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 20
前往
页
相关搜索词
GetoffmythreadTechniquesformovingtobackgroundthreads现代C++教程高速上手11141720高性性能高性能并行编程优化课件05深入深入浅出MFC1506080702
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩