`
liudunxu2
  • 浏览: 30791 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
文章分类
社区版块
存档分类
最新评论

浪潮实习第八天杂记

 
阅读更多

1.断言的一个重要优势是能快速的定位错误的位置

2.不要把相关的业务逻辑放到断言里面去,比如assert(i++)

3.动态数组创建时遵循的原则是创建时由外向内,销毁时由内向外。

4.用relloc和calloc可以实现指针的再分配

5.设计模式meditor和facade的区别是mediator往往是不可在client端调用的,它只是在不同类之间起协调作用,真正被调用的还是具体对象,而facade模式则是把一个内部的复杂的实现抽象出一个简单的接口供使用者使用,一般对外直接调用。

6.将后缀表达式转化为表达式树

public static function parsePostfix($in)
{
$stack = new StackAsLinkedList();


while (($c = fgetc($in)) != false)
{
if (ord('0') <= ord($c) && ord($c) <= ord('9') ||
ord('a') <= ord($c) && ord($c) <= ord('z') ||
ord('A') <= ord($c) && ord($c) <= ord('Z'))
{
$stack->push(new ExpressionTree($c));
}
elseif ($c == '+' || $c == '-' ||
$c == '*' || $c =='/')
{
$result = new ExpressionTree($c);
$result->attachRight($stack->pop());
$result->attachLeft($stack->pop());
$stack->push($result);
}
}
return $stack->pop();
}

注意返回的是$stack->pop();

元数据(Metadata)

其它文件保存信息常常伴随着文件自身保存在文件系统中。文件长度可能是分配给这个文件的区块数,也可能是这个文件实际的字节数。文件最后修改时间也许记录在文件的时间戳中。有的文件系统还保存文件的创建时间,最后访问时间及属性修改时间。(不过大多数早期的文件系统不记录文件的时间信息)其它信息还包括文件设备类型(如:区块数,字符集,套接口,子目录等等),文件所有者的ID,组ID,还有访问权限(如:只读,可执行等等)。元数据最本质、最抽象的定义为:data about data (关于数据的数据)。它是一种广泛存在的现象,在许多领域有其具体的定义和应用。,元数据可以描述资源,检索资源等

为什么你需要从ext2迁移到ext3呢?以下有四个主要原因:可用性、数据完整性、速度、易于迁移。(ext3,日志文件系统)

SAX(simple api for xml)与dom的区别在于dom将文件载入到内存中的,如果只是读取数据,用sax比较方便,sax是一种轻量级的处理xml的方法。

线程池

 应用程序可以有多个线程,这些线程在休眠状态中需要耗费大量时间来等待事件发生。其他线程可能进入睡眠状态,并且仅定期被唤醒以轮循更改或更新状态信息,然后再次进入休眠状态。为了简化对这些线程的管理,.NET框架为每个进程提供了一个线程池,一个线程池有若干个等待操作状态,当一个等待操作完成时,线程池中的辅助线程会执行回调函数。线程池中的线程由系统管理,程序员不需要费力于线程管理,可以集中精力处理应用程序任务。

  线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程.每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中.如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙.如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值.超过最大值的线程可以排队,但他们要等到其他线程完成后才启动



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics