随笔分类 - 操作系统OS
摘要:目录函数简介低层实现逻辑 函数简介 /* Manipulate an epoll instance "epfd". Returns 0 in case of success, -1 in case of error ( the "errno" variable will contain the sp
阅读全文
摘要:目录函数简介低层实现逻辑epoll_create与epoll_create1函数的区别 函数简介 /* Creates an epoll instance. Returns an fd for the new instance. The "size" parameter is a hint spec
阅读全文
摘要:目录函数简介低层实现逻辑 函数简介 /* Wait for events on an epoll instance "epfd". Returns the number of triggered events returned in "events" buffer. Or -1 in case of
阅读全文
摘要:目录定义events字段data字段 定义 epoll_event结构体一般用在epoll机制中,其定义如下: struct epoll_event { uint32_t events; /* Epoll events */ epoll_data_t data; /* User data varia
阅读全文
摘要:epoll 是一种在 Linux 上可用的高性能 I/O 事件通知机制,用于处理大量并发连接。 以下是使用 epoll 进行网络编程的基本步骤: 1. 创建 epoll 实例:使用 epoll_create 函数创建一个 epoll 实例。 2. 添加监听的文件描述符:使用 epoll_ctl 函数
阅读全文
摘要:目录简介应用场景与回调函数区别示例 简介 在Linux下,基于事件驱动的机制主要是通过内核实现,主要涉及到消息传递机制。当硬件设备发出中断时,Linux内核会将触发事件的信息转发到对应的进程上,从而使用户态的应用程序可以响应中断信号,提高程序的响应能力。 此外,Linux还提供了多种方式来实现事件驱
阅读全文
摘要:目录简介如何使用示例 简介 在 Linux 下,I/O 多路复用是一种用于高效处理多个 I/O 操作的技术。它允许一个进程同时监视多个文件描述符或网络套接字,以便在其中任何一个发生 I/O 事件时能够及时响应。 I/O 多路复用的主要目标是提高系统的并发性能和资源利用率。通过同时监听多个 I/O 源
阅读全文
摘要:目录Reactor模型Proactor模型总结实际应用优缺点示例 Reactor 模型和 Proactor 模型都是用于处理异步 I/O 操作的并发模型,它们在设计和实现上有一些区别。 Reactor模型 Reactor 模型(反应器模型)是一种基于事件驱动的并发模型,主要用于处理网络通信等 I/O
阅读全文
摘要:目录简介成员函数 简介 原子操作库 在 C++11 中,std::atomic是一个用于原子操作的类模板。它提供了原子的读-改-写操作,以确保在多线程环境下对共享变量的操作是线程安全的。 std::atomic的主要用途是对共享变量进行原子操作,例如递增、递减、赋值等。它可以用于实现线程安全的数据结
阅读全文
摘要:目录semaphore信号量的实现semaphore信号量的使用Semaphore与condition_variable的区别 semaphore信号量的实现 参考链接 使用了std::mutex和std::condition_variable来实现信号量的操作。 在这个实现中,Semaphore类
阅读全文
摘要:目录简单的线程池C++ 线程池 (学习) 简单的线程池 在 C++11 中,你可以使用 std::thread 和 std::mutex 等标准库来实现一个简单的线程池。 这个代码定义了一个简单的线程池类 ThreadPool,可以用于提交任务并在多个线程上执行。 下面是代码的主要部分和功能: Th
阅读全文
摘要:目录什么是C++中的异步操作?std::async异步调用函数future类 什么是C++中的异步操作? 在C++中,异步操作是指在程序执行期间,可以同时执行多个任务,而无需等待前一个任务完成。这种并发执行的方式可以提高程序的性能和响应速度。 C++中的异步操作通常通过多线程或异步任务来实现。使用s
阅读全文
摘要:目录condition_variable简介成员函数实现线程间的通信 condition_variable简介 std::condition_variable是C++中用于线程同步的一个类。它通常与std::mutex一起使用,用于在一个或多个线程中阻塞,直到另一个线程修改了共享变量并通知了cond
阅读全文
摘要:目录C++中的mutex类如何使用Mutex中的lock与unlocktry_lock、try_lock_for和try_lock_untilstd::lock_guard和std::unique_lock C++中的mutex类 C++中的Mutex类是用于实现线程同步的关键工具之一。它用于保护共
阅读全文
摘要:1 线程的创建
2 线程的执行方式,`join`或者`detach`
3 向线程函数传递参数,需要注意的是线程默认是以拷贝的方式传递参数的,当期望传入一个引用时,要使用`std::ref`进行转换
4 线程是`movable`的,可以在函数内部或者外部进行传递
5 线程在运行过程中,如果需要停顿,可以用`this_thread::sleep_for`实现
6 每个线程都一个标识,可以调用`get_id`获取。
阅读全文

浙公网安备 33010602011771号