摘要:
前面分析了怎么样把一个线程放到延迟就绪队列,接着下来的问题就是这些在就绪队列里的线程什么时候开始运行呢?又是怎么样把就绪队列的线程取出来运行的呢?线程调度的触发事件有以下四种:1) 线程进入就绪状态,如一个刚创建的线程,或者一个刚结束的线程。2) 线程的时间片用完。3) 线程调用系统服务发生等待,或者被系统改变其优先级。4) 线程改变自己运行的处理器。先来分析第一种情况,当线程结束时产生的调度。可以从Reactos的API里知道,终止一个线程可以使用API函数TerminateThread,而这个函数就是通过系统调用转换后,调用内核的函数NtTerminateThread,而NtTermina 阅读全文
posted @ 2009-07-19 12:05
ajuanabc
阅读(184)
评论(0)
推荐(0)
摘要:
前面介绍放到延迟队列是单核的版本,下面来学习多核的版本,代码如下:#001 //#002 // This routine makes the thread deferredready on the boot CPU.#003 //#004 FORCEINLINE#005 VOID#006 KiInsertDeferredReadyList(IN PKTHREAD Thread)#007 {设置线程状态和运行线程的CPU。#008 /* Set the thread to deferred state andboot CPU */#009 Thread->State = DeferredR 阅读全文
posted @ 2009-07-19 00:43
ajuanabc
阅读(146)
评论(0)
推荐(0)
摘要:
openjweb平台除了原来的非空,唯一校验外,增加了邮件格式校验器,手机格式校验器,居民身份证校验器,除此之外,增加了正则表达式校验器,正则表达式校验器的增加,实现了为任一表字段配置正则表达式校验,这样开发人员不需要在java代码中编写校验代码,只需要在表字段属性中设置正则表达式,下面是openjweb平台从表字段设置中读正则表达式的代码,读到正则表达式后,使用Pattern.compile进行解析:package org.openjweb.core.validator;import java.util.regex.Matcher;import java.util.regex.Pattern 阅读全文
posted @ 2009-07-19 00:14
ajuanabc
阅读(218)
评论(0)
推荐(0)
浙公网安备 33010602011771号