编程文章

探讨C语言系统编程中线程的原理以及实现

点击蓝字 关注我们线程的概念我们今天来聊一聊线程,之前有写过一篇关于进程的文章,今天我们聊的线程,和进程差不多,我们首先要知道的一件事情是一个进程里面可以包括多个线程,不能反过来,我们之前了解到的不同进程可以做不一样的事情,我们举一个简单易懂的例子:我们的电脑上面有很多的应用程序,微信、QQ,酷狗音乐等等,我们运行一个应用程序就有一个进程,那什么是线程呢?比 …

Linux 多线程全面解析

文章转载微信公众号:马哥linux运维,不是原创职位转载收藏学习。在传统的 Unix 模型中,当一个进程需要由另一个实体执行某件事时,该进程派生(fork)一个子进程,让子进程去进行处理。Unix 下面的大多数网络服务器程序都是这么编写的,即父进程接受连接,派生子进程,子进程处理与客户的交互。虽然这种模型很多年来使用得很好,但是 fork 时间有一些问题:f …

linux:线程的3种实现方式(内核级,用户级和混合型)

1 、线程的3种实现方式在传统的操作系统中,拥有资源和独立调度的基本单位都是进程。在引入线程的操作系统中,线程是独立调度的基本单位,进程是资源拥有的基本单位。在同一进程中,线程的切换不会引起进程切换。在不同进程中进行线程切换,如从一个进程内的线程切换到另一个进程中的线程时,会引起进程切换根据操作系统内核是否对线程可感知,可以把线程分为内核线程和用户线程在多线 …

使用CyberRT写第一个代码

0. 简介计算框架是自动驾驶系统中的重中之重,也是整个系统得以高效稳定运行的基础。为了实时地完成感知、决策和执行,系统需要一系列的模块相互紧密配合,高效地执行任务流。由于各种原因,这些模块可能位于不同进程,也可能位于不同机器。这就要求计算框架中具有灵活的、高性能的通信机制。Apollo在3.5版本中推出了Cyber RT替代了原先的ROS。和ROS & RO …

Qt多线程编程之QThreadPool 和 QRunnable使用

说到线程通常会想到QThread,但其实Qt中创建线程的方式有多种,这里主要介绍其中一种QRunnable,QRunnable和QThread用法有些不同,并且使用场景也有区别。要介绍QRunnable的用法、使用场景以及注意事项,首先还要先来看看QThreadPool,因为QRunnable任务需要使用QThreadPool启动线程。一、QThreadPo …

FFmpeg连载2-分离视频和音频

前言前面我们搭建好了FFmpeg的开发环境,今天我们就来小试牛刀,使用FFmpeg库对mp4文件进行解封装,提取mp4中的视频流和音频流输出到单独的输出文件中。 关于FFmpeg开发环境搭建可以看我之前的文章。所谓的分离视频和音频是我们通俗的说法,官方的说法叫解封装。与解封装对应的叫封装或复用器,也就是将多个视频流或音频流合并成一个多媒体文件就叫封装。API …

QMenuBar、QMenu、QDialog

QMenuBar一、描述菜单栏。二、属性成员1、defaultUp : bool菜单弹出方向。默认情况下,菜单“向下”弹出屏幕。如果菜单不适合屏幕,则自动使用另一个方向。2、nativeMenuBar : bool菜单栏是否将在支持它的平台上用作本机菜单栏。当前支持的平台是 macOS 和使用 com.canonical.dbusmenu D-Bus 接口的 …

C++中NULL和nullptr的区别

C++中NULL和nullptr的区别:NULL来自c语言,一般由宏定义实现,而nullptr是C++11新增加的关键字。在c语言当中 NULL定义为 #define NULL ((void *)0)在C++语言当中 NULL定义为整数0。 #define NULL 0一般编译器定义如下:#ifndef NULL#ifdef __cplusplus#defi …

使用C++界面框架ImGUI开发一个简单程序

《Linux CC++一线开发实践》一对一答疑购买地址简介#ImGui 是一个用于C++的用户界面库,跨平台、无依赖,支持OpenGL、DirectX等多种渲染API,是一种即时UI(Immediate Mode User Interface)库,保留模式与即时模式的区别参考保留模式与即时模式。ImGui渲染非常快,但界面上有大量的数据集需要渲染可能会有一些 …

C/C++面试宝典:二叉树的层序遍历实现

引言二叉树,历来是CC++软件工程师面试必备内容,之所以如此受欢迎,主要是因为二叉树的考查可易可难,企业可以根据考查重点,应聘者的水平要求方面来出题,而且都是二叉树方面的东西;另外,通过二叉树的考查,也可以看出应聘者对于数据结构、代码优化能力等方面的水平。本节将介绍二叉树的另一个考点——二叉树的层序遍历需求介绍:给定一个二叉树,返回该二叉树层序遍历的结果,( …