logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C语言基础(Linux)

Linuxvim快捷键shift+k:进入函数内部 ;qq返回`shift+n:提示功能Xshell中Ctrl+Tab切换窗口wqa:退出所有窗口。Git(Linux)首先创建一个版本库git init初始化空的 Git 版本库于 /root/My_Repository_Git/.git/使用一些修改文件的操作~~~~~~~~~~~vim code.txt使用下面两条命令可以创建一个版本git a

#c语言#linux#开发语言
C++并发编程-17. 线程安全的链表

前文介绍了如何基于锁实现线程安全的栈和队列结构,以及实现线程安全的查找表,但是我们上次的查找表是基于list实现的,对于锁的精度控制的不是很准确,提及了接下来会介绍精细控制的链表,用来替换查找表中的链表。这一节我们就介绍如何通过锁控制链表访问的精度。

#c++#安全#链表
C++并发编程-18. 线程安全的无锁栈(难)

前文我们通过锁的互斥机制实现了并发安全的栈,队列,查找表,以及链表等结构。接下来本文介绍通过无锁的原子变量的方式实现对应的容器,我们这一篇先从无锁的方式实现栈讲起。

#c++#安全#开发语言
C++并发编程-18. 运用风险指针实现无锁栈(难)

术语“风险指针”是指Maged Michael发明的一种技法, 后来被IBM申请为专利。前文我们设计了无锁并发栈的结构,对于pop操作回收节点采用的是延时删除的策略,即将要删除的节点放入待删除列表中。但是待删列表中的节点可能永远不会被回收,因为每次多个线程pop就不会触发回收待删列表的操作。上一节我们说可以通过执行pop的最后一个线程执行回收,那为了实现这个目的,我们就要换一种思路。

#c++#java#开发语言
C++并发编程-24. 几种简单并行算法的实现(for_each,find以及partial_sum)

前文介绍了几种数据划分的方式,包括按照线程数量划分,按照递归方式划分,以及按照任务类型划分等。本文结合之前的划分方式,基于stl的find, for_each以及partial_sum等算法实现并行版本。

#c++#java#数据库
C++并发编程-23. 线程间切分任务的方法

我们实现一个函数调用上面的封装快速排序本例中,parallel_quick_sort()函数(19处)把绝大部分功能委托给sorter类(1处),后者通过栈容器管理待排序的数据段(2处),并集中管控多个线程以并发执行任务(3处),从而以便捷的操作方式给出了代码实现。本例中,主要工作由成员函数do_sort()负责(9处),它借标准库的std::partition()函数完成数据分段(10处)。

#c++#开发语言
《C++并发编程实战》 第2章 线程管控

为什么要用它们而不是直接用 it + n 或 it - it?因为不是所有容器(比如 std::list)都支持 + 或 - 运算符。使用 std::distance 和 std::advance 可以让你的并发算法适用于任何标准容器,增强了代码的通用性。当前线程的ID可以通过调用std::this_thread::get_id()获得。在与线程关联的std::thread对象上调用成员函数get

#c++#java#jvm
《C++并发编程实战》 第3章 在线程间共享数据

C++17引入了一个新特性,名为类模板参数推导。于std::lock_guard<>可以直接简化为std::lock_guard guard(some_mutex);

#c++#开发语言
《C++并发编程实战》 第4章 并发操作的同步

两种超时(timeout)机制可供选用:一是迟延超时(duration-based timeout)​,线程根据指定的时长而继续等待(如30毫秒)​;处理迟延超时的函数变体以“_for”为后缀,而处理绝对超时的函数变体以“_until”为后缀。三种方式其实代表了 C++ 并发编程中,从 “全自动” 到 “全手动” 的三种不同粒度的控制权。它们的核心目的都是为了获取一个 std::future(未来

#c++#开发语言
《C++并发编程实战》第5章 C++内存模型和原子操作

is_lock_free() ,准许使用者判定某一给定类型上的操作是能由原子指令(atomic instruction)直接实现(x.is_lock_free()返回true)​,还是要借助编译器和程序库的内部锁来实现(x.is_lock_free()返回false)​。这一功能可在许多情形中派上大用场,原子操作的关键用途是取代需要互斥的同步方式。但是,假如原子操作本身也在内部使用了互斥,就很可能

#c++#java#android
    共 16 条
  • 1
  • 2
  • 请选择