- 博客(244)
- 资源 (32)
- 收藏
- 关注
原创 C# 并行编程 之 并发集合 (.Net Framework 4.0)
此文为个人学习《C#并行编程高级教程》的笔记,总结并调试了一些文章中的代码示例。 在以后开发过程中可以加以运用。对于并行任务,与其相关紧密的就是对一些共享资源,数据结构的并行访问。经常要做的就是对一些队列进行加锁-解锁,然后执行类似插入,删除等等互斥操作。 .NetFramework 4.0 中提供了一些封装好的支持并行操作数据容器,可以减少并行编程的复杂程度。基本信息
2015-05-08 10:15:29 28139
原创 C# 并行编程 之 命令式任务并行 (.Net Framework 4.0)
此文为个人学习C#并行编程高级教程的笔记,总结并调试了一些文章中的代码示例。 在以后开发过程中可以加以利用。
2015-04-22 08:58:21 3356
原创 C#中 一个多线程框架
c#提供了丰富的多线程操作,为编程带来了极大的便利,但如果使用不当也会带来各种各样的麻烦。这里把C#中多线的操作进行了一下简单的封装,使它对外提供的接口简洁,易于控制。保留一下的代码片段,以备日后查用。using System;using System.Collections.Generic;using System.Text;using System.Threa
2015-04-20 08:26:55 7140
原创 C++ 大规模程序设计 之 全局名称空间
《大规模C++程序设计》 总结。对于大中型项目来说,全局变量,全局函数总是在所难免。而且让人又爱又恨。用的好省时省力,用的不好陷阱重重,程序无法维护。《大规模C++程序设计》书中总结了几种解决方式,这里把他们解决方式和实例代码保留在这里以便以后查用。
2015-04-09 09:56:25 878
原创 C++ pthread cond_wait 和 cond_broadcast的使用
一个简单的实例程序,说明pthread_cond_wait 和 pthread_cond_broadcast 的使用方式。函数定义:int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)int pthread_cond_broadcast(pthread_cond_t *cond)函
2015-03-12 22:23:14 4893
原创 C++ pthread 信号量及detach的使用
通过一个简单的例子,总结一下pthread中信号量的使用方式以及使用pthread_detach和使用pthread_join的区别。以备以后查阅。涉及到的函数:int pthread_kill(pthread_t thread, int sig) :向线程发送一个信号,参数分别为线程ID和信号量。在线程内部可以对信号进行处理,当然也有一些系统默认的出来方式。比如发送信号SIGQU
2015-03-07 11:26:34 4039
原创 C++ 用类封装 pthread
一个项目中需要用到pthread,发现把它封装到类中使用起来更加的方便。这里保存了实例代码,以备以后使用。头文件中定义了ThreadBase类,它包含了线程基本的一些接口,start() join() 和quit()run()为接口函数,使派生类可以实现自己的工作函数。thread_base.h#ifndef _THREAD_BASE_H_#define _
2015-02-28 14:29:40 3768
原创 C#中 Thread类的使用
基本的 Thread 框架基本的 Thread 程序结构,由工作函数,start 和 join 组成Thread类是比较常用的一个类,这里总结了一些基本的使用方法和程序示例,以备以后查用。https://msdn.microsoft.com/zh-cn/library/system.threading.thread.aspxusing System;using
2015-02-12 17:32:58 5057
原创 C++ 模板使用
模板是解决重用的一种方式,"模板" 顾名思义,一个框框,框架不会轻易变动,但其中的内容可以随意填写。以一个栈的定义为例class stack{private: enum {ssize = 100}; int m_stack[ssize];int m_top;public: stack() : m_top(0) {m_stack[m_to
2014-11-17 08:16:07 773
原创 设计模式 - 策略和职责链模式 C++
策略和职责链模式: 运行时选择的算法。策略模式的主要意图是: 对于一个问题,我们其实可以通过多种方式来解决,但最好的解决方式都是根据"具体的情况"来决定的。这就是动态的选择,是策略。 职责链是将一系列的策略串在一起,当遇到问题时从头到尾对职责链进行遍历,来找到最适合的解决方式。这里的"具体情况"在程序中可以理解为上下文环境 context,它的输入会决定到底采取什么样的策略
2014-09-26 15:25:22 750
原创 设计模式 - 适配器模式 C++
关于shi一个库或一段代码对外提供了接口,这个接口的表达方式有可能并不为某些调用者所接受。但换一种表达方式这个接口则能很好的适应新的要求。
2014-09-25 08:37:57 621
原创 设计模式 - 状态模式 C++
状态模式是产生一个可以改变其类的对象,通过前端对象的变化来使后端工作的不同对象履行其职责。通过改变一个对象的状态,使它的工作对象也发生变化。如果一个对象在决定它要做什么之前总是要对当前的状态做很多的判断,那么就可以考虑使用状态模式。一个坏的例子。为什么是个坏例子: 在work() 函数中,每次都要对当前worker的状态进行检
2014-09-19 16:29:56 933
原创 设计模式 - 代理模式 C++
代理模式的基本思想是,需要服务的代码只与代理类打交道,而实际工作的部分隐藏在代理的背后。它的主要的目的是希望隐藏实现的部分,从而消除代码的耦合。pic_1代码示例:代理模式的类型: 这些类型主要是针对不同的情况在代理模式中加入了一些特性。1)
2014-09-17 16:39:18 1137
原创 设计模式 - 命令模式 C++
命令模式的代码很简单,主要目的用于消除对象间的耦合关系。它可以消除调用者与被调用者位置间的关系。它的特点是允许向一个函数或对象传递以个动作, 或者是一系列的动作。它可以看做是回调函数的替代产物,当把一个对象对外提供的服务用一个命令类进行了封装后,所有需要这个类服务的其他调用的部分只需要和这个命令类建立关系即可。命令模式示例:
2014-09-15 09:10:48 740
原创 设计模式 - 单件模式 C++
单件模式单件模式允许一个类有且只有一个对象。单件模式的关键是防止程序员获得 控制对象生存期的权利。ya类的默认的构造函数,拷贝构造函数和赋值构造函数。一个单件的示例:
2014-09-10 08:07:07 793
原创 C++ string 的使用
string 写复制一个简单的例子,开始时,s2用s1来初始化,在对字符串做任何改变之前s1和s2指定的是同一物理地址,但对s1进行了修改后我们发现地址发生了变化。这时的s1和s2已经指向了不同的物理空间。只有当字符串发生改变时,才创建各自的拷贝,这种实现方式叫做写时复制。sample code 1sample1_result_pic
2014-09-05 12:26:03 742
原创 C++ 流的使用 Part II - string stream 和 流的格式化输出
string stream继承图pic_1Sample 1 istringstreamSample 2 ostringstream输出流的格式化输出格式化开关标志ios::unitbuf : 单元缓冲区每次插入后立即刷新(马上进行输出)。ios::
2014-09-03 08:17:21 2476
原创 C++ 流的使用 Part I - file iostream
继承图pic_1一个简单的流处理的例子。基本的函数:in.get(buffer, SIZE) 读取文件中的一行到buffer中,如果这一行字符的长度大于buffer的size, 那他会先读满buffer->处理,然后继续读取,一直读到'/n' 字符。程序中使用 in.get(); 来读取'/n',并且把'/n'跳过去,如果不使用它的
2014-08-29 16:31:20 873
原创 BitVector
一个很实用的小算法,来自Thinking in C++它主要解决的是一个高效存储真假标志集合的问题。如果我们有一批数据,这些数据可以用 [on] 或[off] 来表示。用一个叫位向量的类来存储它们应该是很方便的。有时,位向量并不是作为应用程序的一个工具来使用,而是作为其他类的一部分。当然对一组标志进行编码,最容易的方法就是每个标志占一个字节, 但这样会非常浪费空间,比如我们
2014-08-21 08:19:36 1723
原创 Thinking in C++ -- 函数的缺省参数
缺省参数是在 C++函数声明时就给其参数赋值。C++支持函数的重载,在同一个类中,具有相同名字的函数可以通过定义不同的参数列表来实现多态。为了简化编程时的工作,函数的缺省参数也是在这个背景下产生的。它最大好处就是为编程时提供简化。一个简单的例子#include using namespace std;sample.hc
2014-08-20 08:21:16 821
原创 Inter-RAT Mobility in Connected State: CDMA2000 (eHRPD)
首先简单介绍一下 EPS + eHRPD网络的基本结构。它分为两种,未优化的 和 优化的EPS+eHRPD Network Architecture (Non-Optimized)pic_1几个关键的接口S2a Interface: - 连接3GPP EPS 网络中PDN-GW 和 3GPP2 eHRPD网络中的HSGW。
2014-07-20 15:29:15 4616
原创 IRAT Iu Handover (UTRAN to EUTRAN)
Overview 它有四个大的步骤。 1) Decision Serving RNC 初始化 handover并且通知Serving SGSN。2) Preparation Serving SGSN 会通知 目的 MME,准备Handover需要的资源。 目的MME 会初始化S-GW和eNB需要的资源。3) Executio
2014-07-16 08:52:01 3014
原创 IRAT Iu Handover (E-UTRAN to UTRAN) Call Flow
IRAT Iu Handover Call Flow OverviewDecision E-UTRAN 根据UE发送的 Measurement Report 决定是否进行Handover。 Preparation Serving eNB通知 Serving MME需要进行Handover。 Serving MME会通知目标SGSN 需要进行reloaction。
2014-07-11 09:34:49 2644
原创 Cricuit Switched Fallback (CSFB) : CDMA2000 1XRTT
关于LTE对支持Voice 当UE attach在E-UTRAN时,它可以有三种选择方案来支持Voice 服务。Circuit Switched Fallback (CSFB) to 1XRTT如果LTE网络中没有IMS,voice call会被 fallback到一个CDMA的网络中。这种技术不需要IMS的支持。在MT call时,UE是被LTE网络呼叫的。
2014-07-02 09:02:20 4297
原创 Cricuit Switched Fallback (CSFB) : UTRAN MO/MT Call
CSFB MO CallCSFB MO Call 支持两种机制,它们在UE处于Idle 或这 connected mode 时都可以使用。 - PS HandOver UE从E-UTRAN Handover 到 目的 RAT,这个过程是由eNB初始化的。 - Redirection E-UTRAN 的 RRC Connection
2014-06-24 08:20:30 8737
原创 libgdx - SpriteBatch的使用
SpriteBatch 这是绘图时会经常使用的一个功能类,它位于 com.badlogic.gdx.graphics.g2d中。控制类接口:begin()开始准备成批量的画图,它打开了混合和纹理。end()结束渲染,它关闭了混合和纹理,并且必须在begin后调用。flush()所有在 Pending状态的 sprites 都会被渲染,并且
2014-06-23 21:17:39 2429
原创 libgdx - 对于SpriteBatch中setProjectionMatrix() 的理解
对于 SpriteBatch中setProjectionMatrix() 的理解在编程过程中,遇到了一个函数SpriteBatch::setProjectionMatrix(OrthographicCamera.combined)。经过一番搜索,终于理解了他的含义。这里保留一些信息,以便以后参考。一 和二 只是为了理解这个函数做了一些简单的铺垫。一, 关于正交投影和
2014-06-22 11:36:19 2866
原创 Cricuit Switched Fallback (CSFB) : UTRAN Overview
简单介绍:当LTE网络中没有部署IMS时,CSFB 可以使网络同样支持语音服务。很多UE都可以支持这个场景。CSFB和IMS可以同时被部署到网络中,这样当UE脱离IMS时同样可以使用CSFB支持语音业务。在初始化注册到MME时,UE会告诉网络希望支持"Combined Attached"。在实际过程中,UE会要求注册到2G/3G circuit switched 网络中
2014-06-16 08:43:23 2355
原创 Inter-RAT Mobility in Connected State: UTRAN Part I Overview
3GPP Interworking Architecture(S3/S4/S12)pic_13GPP定义了两种方式可以使EPS和UTRAN进行连接。这里主要使用的是S3,S4,S12接口。S3,S4,S12使用专门的GTPv2协议。- S3 是连接SGSN 和 MME的可以用来传递控制信息,来支持UE在LTE和UTRAN间的handover和relo
2014-06-12 08:11:49 4200
原创 Radio Link Failure and Recovery
四种会发生Radio Link Failure的场景- DL Physical Layer Failure (PDCCH BLER > 10%)- Random Access Problems (in Connected State)- Failure after RLC retransmissions(specific PDU)- Handover Failure
2014-05-28 08:34:56 9152
原创 Tracking Area Update Procedure
Tracking Area Update ProcedureTracking Area Update Procedure 发生的条件。pic_1当UE发现新eNB广播的Tracking Area Code 不在 MME的TAI 的list中,UE知道它进入了一个新的Tracking Area。他需要启动Tracking Area Update
2014-05-21 09:16:23 10538
原创 Intra-LTE Handover : S1 based Handover
当两个 eNB间没有 X2接口时,他们的切换需要经过MME,这时需要进行S1 based Handover。S1 based handover 的四个基本的步骤:Decision (决定)- Serving eNB 初始化 Handover并且通知 Serving MME。Preparation (准备)- Serving MME 通知 Ta
2014-05-05 09:07:16 10245
原创 libgdx - 开发中遇到的问题及解决
问题 01:在 ImmediateModeRenderer20 中 抛出了 NullPointerException。05-03 09:50:43.250: E/AndroidRuntime(893): java.lang.NullPointerException05-03 09:50:43.250: E/AndroidRuntime(893): at com.badlogic.g
2014-05-03 22:07:15 1279
原创 libgdx - 基础框架 及 资源
Libgdx是一款支持2D与3D游戏开发的游戏类库。它是一个开源的项目,源码可以在这里找到 https://github.com/libgdx/libgdx/它主要由:文件操作,音频操作,2D/3D渲染,Libgdx绘图相关运算等模块组成。(主要参考 https://github.com/libgdx/libgdx/wiki)此图来自 https://
2014-05-03 21:35:56 887
原创 Intra-LTE Handover : X2 based handover
当2个 eNodeB间存在着 X2 接口时会发生这种 handover。当X2 based handover 进行时,两个eNodeB会直接进行协商。当 UE 和 Target eNodeB连接建立完成后,会通知MME来转换路径。X2 based handover 的四个基本的步骤:Decision (决定)- Serving eNB初始化 handover
2014-04-21 09:32:09 8429
原创 Mobility Management in Connected State
应用的场景一部手机开始在位置 1 注册,然后朝位置 2 移动,最后到达目的地位置 3.移动管理:Handover 支持在手机移动过程中维护一个空口的连接 - Quality based handover - Coverage based handoverHandover 支持Radio Resource Management(RRM) 过程
2014-04-17 08:50:15 1749
原创 Data Routing Support in EPS
Data Routing Support in EPS一个场景的简单描述来理解 Data Routing SupportCharlie的UE建立4个PES承载, - 1 个default 和 2 个dedicate 通过 APN"VoIPAndDefault" - 1 个default 通过 "OfficeAccess"这里最核心的要描述的问题是:不同的
2014-02-25 09:13:43 1226
原创 Multiple PDN Connectivity
Multiple PDN ConnectivityPDN Connectivity OverviewA) "APN" in PDN Connectivity RequestUE 会初始化 UE Requested PDN 过程,它会发送PDN Connectivity Request 消息到MME。如果UE是处于 ECM_IDLE状态,这个NAS消息会由Ser
2014-02-21 08:29:43 7915
实例代码 学习libgdx - SpriteBatch
2014-06-23
多核编程第6章-实例代码
2012-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人