
C++
文章平均质量分 61
NorZ
这个作者很懒,什么都没留下…
展开
-
C++ 使用强制类型转换引入临时变量的问题(续)
今天没事回顾了一下以前写的东西,发现这一篇写的模棱两可https://blog.youkuaiyun.com/niino/article/details/6286558时隔多年,再来回来看这篇文章只能说还是太年轻,看待问题太片面了问题确实是出在强转上,而且也确实会产生一个临时变量。如何证明产生了临时变量?只需要将 const int &tt 的 const 修饰符去掉,就编译不过了,这时候会报错Non-const lvalue reference to type 'int' cannot b原创 2021-03-31 18:22:10 · 890 阅读 · 0 评论 -
C++的单例模式为什么不能是线程安全的
原文:DDJ_Jul_Aug_2004_revised.pdf没有按照原文一字一句的排版和翻译,总体内容都是在的,原文见附件。首先,先简单讲一下什么是DCLP。DCLP是 double check locking pattern的缩写,它的出现旨在为共享资源(比如单例模式)的初始化添加高效的线程安全性。单例模式,分为 lazy-initialization 和 eager-initialization,两种创建静态对象的方式。lazy-initialization 就是在调用 getIns.翻译 2021-01-15 14:53:44 · 719 阅读 · 1 评论 -
pthread优先级的实践与结果分析
更新额外信息:由于以下试验测试环境为 PC 以及 Android O 的手机,由于Android 在9.0 之前并未在内核真正实现PTHREAD_EXPLICIT_SCHED 的设置,因此在线程优先级是否有效上的结论并不准确。目前可以知道的是,在Android P之前的版本上,native 层的线程优先级设置并不会有预期的效果。而由于我手上目前没有 root 的 Android P 设备,也...原创 2017-04-05 21:28:37 · 1259 阅读 · 3 评论 -
TI 8127 Appro 框架简析
这也许是我接触的最后一个嵌入式项目了Appro框架是Ti发布的原创 2014-08-21 11:45:12 · 2874 阅读 · 0 评论 -
多路视频策略显示
最近在ubuntu 12.04 上做了一个基于SDL 1.3版本的多路视频按策略显示的程序,最早是想通过寻找到某种规律来通过程序内部自己来决议显示策略,后来发现,还是使用配置文件比较好。这个项目接触到的新东西不太多,最关键的几个点:1. 串口读写 打开设备,配置参数,write/read,需要注意的是,串口读写不能简单的只调用一次read或者write,要判断返回值,确保读写内容完整原创 2013-10-29 15:06:59 · 2484 阅读 · 0 评论 -
最近工作总结
最近搞了一些多线程的网络编程,用到的一些东西在这里总结一下.1. socket的阻塞与非阻塞, 封装了两个安全发送和接收的函数,不过在阻塞模式下,还真没发现收不完或者发不完,而socket还健在的情况.另外,对于大家为何在TCP连接中诟病非阻塞方式socket,我不太理解,这个项目其实对于数据的实时性要求是相当高的,甚至有考虑过使用UDP,如果使用阻塞发送,那么就是将延时因素完全交给操作系统掌原创 2012-09-14 23:37:16 · 919 阅读 · 0 评论 -
多线程socket编程的2B设计
最近做一个local socket(domain socket)服务器,来进行进程间通信,使用线程池管理多个线程与不同的客户端连接...在设计QUERY_CAPABILITY(能力查询)的时候,犯了一个2B的错误...现在假设我有两个客户端C1, C2, 服务器S分别启动两个线程T1, T2来处理与他们的通信此时C1发送命令QUERY_CAPABILITY到T1, T1做的决策是调用线原创 2012-06-04 16:57:12 · 1368 阅读 · 0 评论 -
最近的一些心得
1.fork()函数 以前了解过一些,但是搞得很糊涂,今天又花了2个小时来看,终于搞清楚了. 在调用fork()后,系统会立即copy一份当前进程到内存中作为子进程运行.而这两份内存,并没有任何共享资源,只有通过pid(fork()的返回值)来判断哪一个是父进程(pid等原创 2011-07-20 18:49:49 · 767 阅读 · 0 评论 -
C++ 使用强制类型转换引入临时变量的问题
<br />这两天发现Android中java上层传递下来的ISurface,我在底层居然画不出图像,但是如果我在底层自己创建ISurface却是可以的...<br />这让我和我同事纠结无比,四处找原因...<br /><br />由于这个现象很像是因为上层传递下来的ISurface并不是上层所管理的那一个...所以我把怀疑方向放在了接口传递参数的时候...当然了,现在看来我所遇到的这个问题并非接口传递参数导致的.<br />其中很多地方有返回sp<T>& 的函数调用,并且返回值又是一个强制类型转换的结原创 2011-03-29 16:39:00 · 3042 阅读 · 3 评论 -
Via OpenCore decoding H.264 ES stream(RTP) from net
Working on原创 2011-01-28 11:49:00 · 1419 阅读 · 0 评论 -
Via OpenCore FileOutputNode getting RAW H.264 data
Success!原创 2011-01-26 16:38:00 · 1130 阅读 · 1 评论 -
Android 2.2 Froyo 上的VideoCamera 数据流程
图画得很山寨... 我也是图方便。原创 2011-01-18 16:30:00 · 1217 阅读 · 0 评论 -
Android 文件解析->解码->输出 的个人分析
花了一个月的时间熟悉Opencore和OpenMax,又花了近半个月,来研究这玩意儿,终于有了一些结论了.在这里记录下来,帮助后来者,更重要的是怕自己以后忘记...以下分析适用与.3gp文件的播放,Android版本为1.5...暂时还有几个地方没有弄清楚,一个是Mp4ParserNode如何将parse(解析)后的数据向下交给解码Node,另一个是解码出来的OutputBuffer是如何send到显示输出的地方,这两处,代码中都使用的PVMFPortInterface* 来完成的.如果以后能够完成,我会来原创 2010-12-15 18:05:00 · 1120 阅读 · 0 评论 -
函数指针.回调函数.学习
<br />最近看Android代码,发现很多回调函数的使用,由于本来对回调函数的不熟悉,感觉很生涩.于是自己写了几行代码来熟悉熟悉.<br />回调函数首先就得有一个函数指针.<br />typedef void (*callback_fun)(char *ptr); <br /> <br />其次,得有供函数指针指向的函数<br />void output_int(char *x){ cout << "output_int:" << x << endl;} <br />void out原创 2010-12-10 17:12:00 · 959 阅读 · 0 评论 -
【转】Linux下的多线程编程
<br />1 引言<br /> 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。<br /> 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。<br /转载 2010-08-20 10:44:00 · 500 阅读 · 0 评论 -
【转】Linux下的C编程入门之“线程”控制与“线程”通信编程
1.Linux“线程”笔者曾经在《基于嵌入式操作系统VxWorks的多任务并发程序设计》(《软件报》2006年第5~12期)中详细叙述了进程和线程的区别,并曾经说明Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓的“线程”只是在被创建的时候“克隆”(clone)了父进程的资源,因此,clone出来的进程表现为“线程”,这一点一转载 2010-08-20 10:07:00 · 676 阅读 · 0 评论 -
没事做,玩C++...
<br />/********************************** 双色球自动选号**********************************/ #include <cmath>#include <iostream>#include <ctime>using namespace std;int main(){ int *A = new int[6]; srand((unsigned int)time(0));原创 2010-06-13 15:13:00 · 459 阅读 · 0 评论 -
二分查找
今天看优快云上说,90%的程序员不能正确写出二分查找法或者说,写出的代码在编译运行前都有BUG于是我试了试#include using namespace std;bool bbsearch(int *A,const int n,const int begin,const int end){ int flag = 0; if( (begin+end)%2 == 0)原创 2010-04-26 10:24:00 · 743 阅读 · 2 评论