查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

白杨

坚持是一种品质,用心是一种习惯! 生活仍在继续……追逐编程质量与效率

 
 
 
 
 
 

北京市 昌平区

 发消息  写留言

 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 

天气

 
 
模块内容加载中...
 
 
 
 
 

日历

 
 
模块内容加载中...
 
 
 
 
 
 
 
 

多线程编程指南学习笔记(十一)--线程属性(2)

2012-11-16 16:37:59 阅读1141 评论0 162012/11 Nov16

设置/获取范围

pthread_attr_setscope(3C)建立线程的争用范围(PTHREAD_SCOPE_SYSTEM或PTHREAD_SCOPE_PROCESS)。使用PTHREAD_SCOPE_SYSTEM时,此线程将与系统中的所有线程进行竞争。使用PTHREAD_SCOPE_PROCESS时,此线程将与进程中的其他线程进行竞争。

注–只有在给定进程中才能访问这两种线程类型。

 1: int pthread_attr_setscope(pthread_attr_t *tattr,

作者  | 2012-11-16 16:37:59 | 阅读(1141) |评论(0) | 阅读全文>>

多线程编程指南学习笔记(七)--线程操作

2012-10-30 16:49:30 阅读1345 评论0 302012/10 Oct30

获取线程标示符

pthread_t pthread_self(void);

返回函数调用线程的线程ID。

比较线程标示符:

作者  | 2012-10-30 16:49:30 | 阅读(1345) |评论(0) | 阅读全文>>

多线程编程指南学习笔记 (五)--线程分离

2012-10-26 16:27:23 阅读1242 评论0 262012/10 Oct26

有关线程的分离状态的详细介绍,请参看《线程的分离状态》。

pthread_detach (3C) 是pthread_join (3C) 的替代函数,可回收创建时detachstate 属性设置为PTHREAD_CREATE_JOINABLE的线程的存储空间。

int pthread_detach(thread_t tid);

返回值:
pthread_detach() 在调用成功完成之后返回零。其他任何返回值都表示出现了错误。如果检测到以下任一情况,pthread_detach() 将失败并返回相应的值。

作者  | 2012-10-26 16:27:23 | 阅读(1242) |评论(0) | 阅读全文>>

多线程编程指南学习笔记(二)--临界区、信号量、互斥量

2012-10-23 16:13:36 阅读1053 评论0 232012/10 Oct23

1,临界区:不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。每个进程中访问临界资源的那段代码称为临界区(Critical Section)(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。

它是通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占,因此必须确保释放临界区的释放的操作在某个时刻被执行。

作者  | 2012-10-23 16:13:36 | 阅读(1053) |评论(0) | 阅读全文>>

进程、轻量级进程、内核线程、用户线程的区别关系

2012-9-20 16:45:23 阅读1443 评论0 202012/09 Sept20

在现代操作系统中,进程支持多线程。进程是资源管理的最小单元;而线程是程序执行的最小单元。一个进程的组成实体可以分为两大部分:线程集

作者  | 2012-9-20 16:45:23 | 阅读(1443) |评论(0) | 阅读全文>>

IO寄存器和传统内存对比

2012-9-17 14:09:37 阅读1916 评论0 172012/09 Sept17

        尽管硬件寄存器和内存之间有很强的相似性, 程序员在存取 I/O 寄存器的时候还是要格外小心,避免被CPU(或者编译器)优化所迷惑, 因为它可能修改你期待的 I/O 行为.

        I/O 寄存器和 RAM 一个主要的不同是:I/O 操作会带来副作用, 而内存操作没有。一个内存写操作的唯一效果是存储一个值到某个地址, 并且一个内存读操作返回上次写到该地址的值. 由于内存存取速度对CPU 性能是至关重要的, 这种无副作用的操作已被多种方式优化: 值被缓存, 并且读/写指令被重新编排.

作者  | 2012-9-17 14:09:37 | 阅读(1916) |评论(0) | 阅读全文>>

C语言中函数参数入栈的顺序

2012-8-17 10:34:57 阅读1419 评论0 172012/08 Aug17

先通过一个小程序来看一看:

#include

void foo(int x, int y, int z)

{

printf("x = %d at [%X]n", x, &x);

printf("y = %d at [%X]n", y, &y);

printf("z = %d at [%X]n", z, &z);

}

int main(int argc, char *argv[])

{

作者  | 2012-8-17 10:34:57 | 阅读(1419) |评论(0) | 阅读全文>>

RTP时间戳

2012-7-12 13:23:04 阅读5494 评论0 122012/07 July12

基本概念:

时间戳单位:时间戳计算的单位不是秒之类的单位,而是由采样频率所代替的单位,这样做的目的就是为了是时间戳单位更为精准。比如说一个音频的采样频率为8000Hz,那么我们可以把时间戳单位设为1 / 8000。

时间戳增量:相邻两个RTP包之间的时间差(以时间戳单位为基准)。

采样频率: 每秒钟抽取样本的次数,例如音频的采样率一般为8000Hz

帧率: 每秒传输或者显示帧数,例如25f/s

作者  | 2012-7-12 13:23:04 | 阅读(5494) |评论(0) | 阅读全文>>

分支限界法

2012-6-21 16:41:10 阅读1436 评论0 212012/06 June21

一、基本描述

       类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解

   (1)分支搜索算法

       所谓“分支”就是采用广度优先的策略,依次搜索E-结点的所有分支,也就是所有相邻结点,抛弃不满足约束条件的结点,其余结点加入活结点表。然后从表中选择一个结点作为下一个E-结点,继续搜索。

作者  | 2012-6-21 16:41:10 | 阅读(1436) |评论(0) | 阅读全文>>

回溯法

2012-6-20 21:24:03 阅读801 评论0 202012/06 June20

1、概念

       回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。

       回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。

     许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。

2、基本思想

作者  | 2012-6-20 21:24:03 | 阅读(801) |评论(0) | 阅读全文>>

贪心算法

2012-6-20 21:18:02 阅读1069 评论0 202012/06 June20

一、基本概念:
 
     所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解
     贪心算法没有固定的算法框架,算法设计的关键是贪心

作者  | 2012-6-20 21:18:02 | 阅读(1069) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018

登录  
 加关注