CN100365582C - 计算机操作系统事件同步对象扩展的数据处理方法 - Google Patents

计算机操作系统事件同步对象扩展的数据处理方法 Download PDF

Info

Publication number
CN100365582C
CN100365582C CNB2006100246562A CN200610024656A CN100365582C CN 100365582 C CN100365582 C CN 100365582C CN B2006100246562 A CNB2006100246562 A CN B2006100246562A CN 200610024656 A CN200610024656 A CN 200610024656A CN 100365582 C CN100365582 C CN 100365582C
Authority
CN
China
Prior art keywords
synchronization object
event synchronization
thread
value
event
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2006100246562A
Other languages
English (en)
Other versions
CN1838079A (zh
Inventor
苏翼鹏
王晨辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI
Original Assignee
KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI filed Critical KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI
Priority to CNB2006100246562A priority Critical patent/CN100365582C/zh
Publication of CN1838079A publication Critical patent/CN1838079A/zh
Priority to HK06113281A priority patent/HK1092898A1/xx
Application granted granted Critical
Publication of CN100365582C publication Critical patent/CN100365582C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

本发明涉及一种计算机操作系统事件同步对象扩展的数据处理方法,扩展了事件同步对象的传统语义,使其拥有多个不同的已通知状态,同时也扩展了事件同步对象的基本操作方法的接口定义。本发明允许当事件发生时,线程能够通过事件同步对象告知等待在其上的线程更详细的情况,从而显著提高事件同步对象本身的通讯能力,使其可以满足更广泛的应用需求。

Description

计算机操作系统事件同步对象扩展的数据处理方法
技术领域
本发明涉及一种计算机操作系统事件同步对象扩展的数据处理方法,尤其是一种基于构件化技术的计算机操作系统内核事件同步对象扩展的数据处理方法。
背景技术
传统上,系统提供的基本事件同步对象只包含两个具体的状态:一个已通知状态和一个未通知状态。因此,通过对某个事件同步对象进行等待操作而后被唤醒的线程只能知道该事件已经发生了。同样,通过对某个事件同步对象进行设置操作的线程也只能是简单地以此通知一个或所有等待此事件同步对象的线程事件已经发生了,除此之外不能再多传递给后者任何附加信息。而在实际应用中,往往需要使用事件同步对象在等待事件的线程和设置事件的线程之间传递一些附加的通知信息。此时就需要借助额外的数据结构并且很可能必须要组合使用其他的同步原语才能做得到。这种做法即便能达到所要求的语义要求,也无法避免下列问题:
1、系统运行效率会降低许多,并且在内存使用上也造成了额外的负担;
2、传统的基本事件同步对象的应用往往会变得异常复杂,特别是在需要支持通用目标的时候。所谓通用目标是指在典型的应用场景中,事件同步对象通常需要同时满足下列要求:
(1)可被应用于多线程、抢占式的系统中;
(2)某一时刻会有多个需要传递不同的附加通知信息的线程和多个需要等待获取附加通知信息的线程并发地访问同一个事件同步对象;
(3)被唤醒的线程得到的应该是设置此事件同步对象并唤醒它的那个线程在那一刻所设置的附加通知信息;
(4)允许最大的并发度,不应该有不合理的阻塞或同步;
如何利用传统的基本事件同步对象并很好完成上述的通用目标,迄今为止仍是一个工程上的难题。相应的足够好的解决方案目前仍然没有被找到。
利用互斥锁和条件变量进行组合,以定制一个能传递附加通知信息的复合事件同步对象的解法从理论上来讲也是可行的。但是实际应用中依然无法避免下列问题:
1、复合事件同步对象远不如基本事件同步对象运行效率高,也不如后者占用的内存少;
2、从实现上来讲,仅仅通过使用一个互斥锁、一个条件变量和一个状态变量组合出来的复合事件同步对象是无法有效地支持上文中提及的通用目标的。自行实现一个能完全符合上述通用目标的复合事件同步对象是非常困难的。同样,相应的足够好的解决方案迄今为止没有被找到。
发明内容
本发明的目的在于针对现有技术的不足,提出一种计算机操作系统事件同步对象扩展的数据处理方法,可以显著提高事件同步对象本身的通讯能力,使其可以满足更广泛的应用需求。
为实现上述目的,本发明提供了一种计算机操作系统事件同步对象扩展的数据处理方法,其中,包括设置事件操作方法以及等待事件操作方法,所述设置事件操作方法执行以下步骤:
步骤11、判断当前事件同步对象是否为手工重置的事件同步对象,是,则通过设置事件同步对象的结构体中的数据成员变量将所述事件同步对象的当前状态值设置为调用传入的已通知状态值;否则,执行步骤14;
步骤12、判断是否有线程阻塞在所述事件同步对象上,是,则在所述线程的线程结构体的m_dwEventState数据项中记录下调用传入的已通知状态值;否则,执行步骤16;
步骤13、从所述事件同步对象的等待队列中取下所述线程并唤醒所述线程,执行步骤12;
步骤14、如果有线程阻塞在所述事件同步对象上,则对于阻塞在所述事件同步对象上的第一个线程,在其线程结构体中的m_dwEventState数据项中记录下调用传入的已通知状态值;否则,将所述事件同步对象的当前状态值设置为调用传入的已通知状态值,执行步骤16;
步骤15、从所述事件同步对象的等待队列中取下所述线程并唤醒所述线程;
步骤16、结束设置事件的操作;
所述等待事件操作方法执行以下步骤:
步骤21、判断当前事件同步对象是不是手工重置的事件同步对象,不是,则将所述事件同步对象设置为未通知状态;否则,执行步骤24;
步骤22、判断在将所述事件同步对象设置为未通知状态前,所述事件同步对象是否处于未通知状态,是,则在所述事件同步对象上阻塞;否则,执行步骤26;
步骤23、从当前线程所对应的线程结构体的m_dwEventState数据项中获取所述线程被唤醒时事件同步对象的已通知状态值,并将所述已通知状态值写入由用户指定的输出参数中,执行步骤27;
步骤24、判断所述事件同步对象上是否处于未通知状态,是,则在所述事件同步对象上阻塞;否则,执行步骤26;
步骤25、从当前线程所对应的线程结构体的m_dwEventState数据项中获取被唤醒时所述事件同步对象的已通知状态值,并将所述已通知状态值写入由用户指定的输出参数中,执行步骤27;
步骤26、将所述事件同步对象的当前状态值写入由用户指定的输出参数中;
步骤27、结束等待事件的操作。
本发明允许当事件发生时,线程能够通过事件同步对象告知等待在其上的线程更详细的情况,从而显著提高事件同步对象本身的通讯能力,使其可以满足更广泛的应用需求。总的来说,本发明具有下列两个优势:
首先,因为是直接针对最基本的事件同步对象进行扩展,所以能在最大程度上保证运行效率,优化内存的使用;
其次,扩展的事件同步对象是最基本的内核对象,所以在实现上可以在超出传统理论所描述的范围之外的地方对其扩展的语义进行支持,从而很好的达到了上文所提到的通用目标。
以下结合附图和实施例对本发明做进一步的详细说明。
附图说明
图1为本发明计算机操作系统事件同步对象扩展的数据处理方法的实施例一中设置事件操作的流程图;
图2为本发明计算机操作系统事件同步对象扩展的数据处理方法的实施例一中等待事件操作的流程图;
图3为本发明计算机操作系统事件同步对象扩展的数据处理方法的实施例二中事件同步对象结构体及线程对象结构体中相关数据项的示意图。
具体实施方式
如图1和图2所示为本发明的实施例一,一种操作系统事件同步对象扩展的数据处理方法,其中,设置事件操作执行以下步骤:
步骤101、如果当前事件同步对象是手工重置的事件同步对象,则将所述事件同步对象的当前状态值设置为调用传入的已通知状态值;否则,执行步骤104;
步骤102、如果有线程阻塞在所述事件同步对象上,则在所述线程的线程结构体的m_dwEventState数据项中记录下调用传入的已通知状态值;否则,执行步骤106;
步骤103、从所述事件同步对象的等待队列中取下所述线程并唤醒所述线程,执行步骤102;
步骤104、如果有线程阻塞在所述事件同步对象上,则对于阻塞在所述事件同步对象上的第一个线程,在其线程结构体中的m_dwEventState数据项中记录下调用传入的已通知状态值;否则,将所述事件同步对象的当前状态值设置为调用传入的已通知状态值,执行步骤106;
步骤105、从所述事件同步对象的等待队列中取下所述线程并唤醒所述线程;
步骤106、结束。
一种操作系统事件同步对象扩展的数据处理方法,其中,等待事件操作执行以下步骤:
步骤201、如果当前事件同步对象不是手工重置的事件同步对象,则将所述事件同步对象设置为未通知状态;否则,执行步骤204;
步骤202、如果在将所述事件同步对象设置为未通知状态前,所述事件同步对象处于未通知状态,则在所述事件同步对象上阻塞;否则,执行步骤206;
步骤203、从当前线程所对应的线程结构体的m_dwEventState数据项中获取所述线程被唤醒时事件同步对象的已通知状态值,并将所述已通知状态值写入由用户指定的输出参数中,执行步骤207;
步骤204、如果所述事件同步对象上处于未通知状态,则在所述事件同步对象上阻塞;如果该事件同步对象上没有处于未通知状态,执行步骤206;
步骤205、从当前线程所对应的线程结构体的m_dwEventState数据项中获取被唤醒时所述事件同步时象的已通知状态值,并将所述已通知状态值写入由用户指定的输出参数中,执行步骤207;
步骤206、将所述事件同步对象的当前状态值写入由用户指定的输出参数中;
步骤207、结束。
以下为本发明的实施例二,参见图3,为本发明所述事件同步对象结构体及线程对象结构体中相关数据项示意图。
在等待事件同步对象变为已通知状态的接口方法的实现中,被唤醒的线程从此线程结构体的m_dwEventState数据项中获取被唤醒时的事件同步对象的已通知状态,并将其返回给调用者。实现伪代码表示如下:
HRESULT Event::Wait(
    /*[out]*/DWORD*pdwState);
{
    DWORD dwState;
    //根据该事件同步对象的类型作相应处理
    if(m_bManual Reset){
       if(UNSIGNALED==(dwState=m_dwState)){
          //在该事件同步对象上睡眠
          SleepOnEvent();
          if(NULL!=pdwState){
             //从线程结构体中获取线程被唤醒时的事件同步对象的
             //已通知状态
             *pdwState=GetCurrentThread()->GetEventState();
          }
       }
      else  {
            if(NULL!=pdwState){
               *pdwState=dwState;
           }
       }
    }
else  {
        if  (UNSIGNALED==(dwState=InterlockedExchange(
                (long*)&m_dwState,UNSIGNALED)))  {
            //在该事件同步对象上睡眠
            SleepOnEvent();
            if  (NULL!=pdwState)  {
                 //从线程结构体中获取线程被唤醒时的事件同步对象的
                 //已通知状态
                 *pdwState=GetCurrentThread()->GetEventState();
              }
        }
        else  {
            if  (NULL  != pdwState)  {
                *pdwState=dwState;
            }
        }
    }
}
相应地,在将事件同步对象设置为已通知状态的接口方法中,在所有被唤醒的线程的线程结构体的m_dwEventState数据项中记下此时所传入的事件同步对象的已通知状态。实现伪代码表示如下:
HRESULT Event::Notify(
     /* [in]  */DWORD dwState);
{
     Thread*pThread;
     //根据该事件同步对象的类型作相应处理
     if(m_bManualReset)  {
        m_dwState=dwState;
         //对事件同步对象的等待队列中的所有线程进行处理
         ForEachNodeOfWaitList(pThread)  {
           //在线程结构体中设置线程被唤醒时的事件同步对象的
           //已通知状态
           pThread->SetEventState(dwState);
           //从事件同步时象的的等待队列中取下该线程并唤醒它
           DetachFromWaitListAndWakeUp(pThread);
         }
      }
      else  {
           if(!lsWaitListEmpty()){
             //如果事件同步对象的等待队列不为空,则取出第一个
             //等待线程来
             pThread=GetFirstNodeOfWaitList();
             //在线程结构体中设置线程被唤醒时的事件同步对象的
             //已通知状态
             pThread->SetEventState(dwState);
             //从事件同步对象的的等待队列中取下该线程并唤醒它
             DetachFromWaitListAndWakeUp(pThread);
        }
      else  {
            m_dwState=dwState;
        }
    }
}
一个传统的事件同步对象典型被应用于线程等待某一事件发生的同步情况。而本发明应用于线程等待某一有限事件集中的任意事件或非空事件子集发生的同步情况。假设这样一种应用情况:在某系统中,有一个线程负责读取或写入文件,完成后通过事件同步对象通知另外一个线程进行某些后续操作。为此,我们使用事件同步对象来进行两者之间的同步。
首先,将所有的通知事件编码定义如下:
#define EVENT_READ   0x01  //读文件
#define EVENT_WRITE  0x02  //写文件
#define EVENT_ERROR  0x04  //读/写出错
然后,系统创建出一个事件同步对象,其实现伪代码表示如下:
//定义一个全局变量用于存放事件同步对象的接口指针,
//使得这两个线程都能够访问到它。
IEvent  *g_pEvent=NULL;
...
HRESULT Initialize()
{
...
//创建一个事件同步对象,对线程进行同步
HRESULT hr =EzCreateEvent(
FALSE,    //自动重置的事件同步对象
UNSIGNALED,//将事件初始状态设为未通知状态
&g_pEvent);
if  (FAILED(hr))  return hr;
...
}
接下来,负责读取或写入文件的线程需要在读写完成之后将事件同步对象设置为已通知状态以通知另一个线程进行后续操作,此时在其设置的已通知状态中就包含了通知事件的具体信息。其实现伪代码表示如下:
void Foo()
{
     DWORD dwEvents=0;
     ...
     if  (RequestReadFile())  {
         dwEvents=EVENT_READ;
            //将文件读入内存。如果出借,则设置EVENT_ERROR,
         if(!ReadFileIntoMemory())  {
            dwEvents|=EVENT_ERROR;
    }
}
else {
    dwEvents=EVENT_WRITE;
最后,另一个进行后续操作的线程在一开始首先去等待此事件的发生。在该线程被唤醒的同时,也取出了通知事件的具体信息。而后就可以根据此信息进行相应后续操作。其实现伪代码表示如下:
void Bar()
{
     DWORD dwEvents;
     ...
     //等待第一个线程完成文件读写操作,并取得通知事件的具体信息
     g_pEvent->Wait(&dwEvents);
       if(dwEvents & EVENT_READ)  {
         if(dwEvents & EVENT_ERROR){
           //报告读文件出错,并进行相应后续处理
           ...
         }
         else  {
               //访问内存中的文件内容
               ...
         }
}
由此可见,使用经过本发明所述的方法扩展的事件同步对象可以非常方便、有效地支持此类线程间的同步的应用。
提供的事件同步对象的扩展特性集中体现在事件同步对象的接口定义上,其各个方法如下表所示(同时列出WIN32的事件同步对象做为比较):
    WIN32事件同步对象API   Elastos 2.0事件同步对象接口方法
等待事件同步对象变为已通知状态     DWORD WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds);   HRESULT Wait([out]DWORD*pState);或:
 或:DWORD WaitForMultipleObjects(DWORD nCount,CONST HANDLE*IpHandles,BOOL bWaitAll,DWORD dwMilliseconds);     HRESULT TryWait([in]INT msTimeout,[out] DWORD*pState);
将事件同步对象设置为已通知状态 BOOL SetEvent(HANDLE hEvent); HRESULT Notify([in]DWORD dwState);
通过对比我们可以看到,本发明中,用于等待事件同步对象变为已通知状态的接口方法上定义了一个[out]DWORD*pState参数。通过此参数,等待事件同步对象变为已通知状态的线程被通知唤醒的同时,还可以获取此刻的具体已通知状态。相应的,用于将事件同步对象设置为已通知状态的接口方法上定义了一个[in]DWORD dwState参数,通过此参数,将事件同步对象设置为已通知状态的线程可以设置事件同步对象的已通知状态为一个具体的数值。本发明对这个参数数值的唯一限制是其不可以为零值。因为系统预定义了零值来表示事件同步对象的未通知状态。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (7)

1.一种计算机操作系统事件同步对象扩展的数据处理方法,包括设置事件操作方法以及等待事件操作方法,其中,所述设置事件操作方法执行以下步骤:
步骤11、判断当前事件同步对象是否为手工重置的事件同步对象,是,则通过设置事件同步对象的结构体中的数据成员变量将所述事件同步对象的当前状态值设置为调用传入的已通知状态值;否则,执行步骤14;
步骤12、判断是否有线程阻塞在所述事件同步对象上,是,则在所述线程的线程结构体的m_dwEventState数据项中记录调用传入的已通知状态值;否则,执行步骤16;
步骤13、从所述事件同步对象的等待队列中取下所述线程并唤醒所述线程,执行步骤12;
步骤14、如果有线程阻塞在所述事件同步对象上,则对于阻塞在所述事件同步对象上的第一个线程,在其线程结构体中的m_dwEventState数据项中记录下调用传入的已通知状态值;否则,将所述事件同步对象的当前状态值设置为调用传入的已通知状态值,执行步骤16;
步骤15、从所述事件同步对象的等待队列中取下所述线程并唤醒所述线程;
步骤16、结束设置事件的操作;
所述等待事件的操作方法执行以下步骤:
步骤21、判断当前事件同步对象是不是手工重置的事件同步对象,不是,则将所述事件同步对象设置为未通知状态;否则,执行步骤24;
步骤22、判断在将所述事件同步对象设置为未通知状态前,所述事件同步对象是否处于未通知状态,是,则在所述事件同步对象上阻塞;否则,执行步骤26;
步骤23、从当前线程所对应的线程结构体的m_dwEventState数据项中获取所述线程被唤醒时事件同步对象的已通知状态值,并将所述已通知状态值写入由用户指定的输出参数中,执行步骤27;
步骤24、判断所述事件同步对象上是否处于未通知状态,是,则在所述事件同步对象上阻塞;否则,执行步骤26;
步骤25、从当前线程所对应的线程结构体的m_dwEventState数据项中获取被唤醒时所述事件同步对象的已通知状态值,并将所述已通知状态值写入由用户指定的输出参数中,执行步骤27;
步骤26、将所述事件同步对象的当前状态值写入由用户指定的输出参数中;
步骤27、结束等待事件的操作。
2.根据权利要求1所述的计算机操作系统事件同步对象扩展的数据处理方法,其中,在所述设置事件的操作中,步骤11在所述事件同步对象的结构体中设置一个无符号整型的数据成员变量:m_dwState,用于指明此事件同步对象当前所处的状态,该状态包括已通知状态及未通知状态。
3.根据权利要求2所述的计算机操作系统事件同步对象扩展的数据处理方法,其中,将所述m_dwState的值设置为1到232-1中任意一个数值,所述事件同步对象处于已通知状态,所述已通知状态值为m_dwState的值;将所述m_dwState的值设置为零,所述事件同步对象处于未通知状态。
4.根据权利要求1所述的计算机操作系统事件同步对象扩展的数据处理方法,其中在所述设置事件的操作中,步骤12在所述m_dwEventState数据项中记录所述已通知状态值的具体过程为:
首先,为所有阻塞在所述事件同步对象上的线程指定一个私有的存储区域,用于记录所述线程被唤醒时所述事件同步对象的已通知状态值;
然后,在所述线程的线程结构体中定义一个数据项:m_dwEventState,用于表示所述存储区域。
5.根据权利要求1所述的计算机操作系统事件同步对象扩展的数据处理方法,其中,在所述等待事件的操作中,步骤23在所述事件同步对象的结构体中设置了一个无符号整型的数据成员变量:m_dwState,用于指明此事件同步对象当前所处的状态,包括已通知状态及未通知状态。
6.根据权利要求5所述的计算机操作系统事件同步对象扩展的数据处理方法,其中,将所述m_dwState的值设置为1到232-1中任意一个数值,所述事件同步对象处于已通知状态,所述已通知状态值为m_dwState的值;将所述m_dwState的值设置为零,所述事件同步对象处于未通知状态。
7.根据权利要求1所述的计算机操作系统事件同步对象扩展的数据处理方法,其中,在所述等待事件的操作中,步骤23在所述m_dwEventState数据项中获取所述已通知状态值的具体过程为:
首先,为所有阻塞在所述事件同步对象上的线程指定一个私有的存储区域,用于获取所述线程被唤醒时所述事件同步对象的已通知状态值;
然后,在所述线程的线程结构体中定义一个数据项:m_dwEventState,用于表示所述存储区域。
CNB2006100246562A 2006-03-14 2006-03-14 计算机操作系统事件同步对象扩展的数据处理方法 Expired - Fee Related CN100365582C (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CNB2006100246562A CN100365582C (zh) 2006-03-14 2006-03-14 计算机操作系统事件同步对象扩展的数据处理方法
HK06113281A HK1092898A1 (en) 2006-03-14 2006-12-04 Data processing method for extension objects synchronizing events in operation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100246562A CN100365582C (zh) 2006-03-14 2006-03-14 计算机操作系统事件同步对象扩展的数据处理方法

Publications (2)

Publication Number Publication Date
CN1838079A CN1838079A (zh) 2006-09-27
CN100365582C true CN100365582C (zh) 2008-01-30

Family

ID=37015485

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100246562A Expired - Fee Related CN100365582C (zh) 2006-03-14 2006-03-14 计算机操作系统事件同步对象扩展的数据处理方法

Country Status (2)

Country Link
CN (1) CN100365582C (zh)
HK (1) HK1092898A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414915B (zh) * 2007-10-19 2011-02-16 英业达股份有限公司 远程复制的发送请求处理系统及其方法
CN101980167B (zh) * 2010-10-19 2013-02-06 上海富士施乐有限公司 一种任务状态机管理机制运行的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1285063A (zh) * 1998-01-05 2001-02-21 英特尔公司 在多个并行的前端管道之间保持数据的同步的系统和方法
US6378124B1 (en) * 1999-02-22 2002-04-23 International Business Machines Corporation Debugger thread synchronization control points
US20020116600A1 (en) * 1999-12-09 2002-08-22 Smith Lawrence O. Method and apparatus for processing events in a multithreaded processor
CN1549116A (zh) * 2003-05-23 2004-11-24 联想(北京)有限公司 基于消息队列的报警信号处理方法
CN1554056A (zh) * 2001-07-17 2004-12-08 BEAϵͳ��˾ 具有同步回退处理特征的事务处理的系统和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1285063A (zh) * 1998-01-05 2001-02-21 英特尔公司 在多个并行的前端管道之间保持数据的同步的系统和方法
US6378124B1 (en) * 1999-02-22 2002-04-23 International Business Machines Corporation Debugger thread synchronization control points
US20020116600A1 (en) * 1999-12-09 2002-08-22 Smith Lawrence O. Method and apparatus for processing events in a multithreaded processor
CN1554056A (zh) * 2001-07-17 2004-12-08 BEAϵͳ��˾ 具有同步回退处理特征的事务处理的系统和方法
CN1549116A (zh) * 2003-05-23 2004-11-24 联想(北京)有限公司 基于消息队列的报警信号处理方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Win32线程同步(Synchronization)对象浅析. 袁松茂.株洲工学院学报,第17卷第2期. 2003 *
Windows95/NT的同步对象(续). 王祖朝.软件世界,第10期. 1997 *
基于Win32 的并发程序设计. 傅建明.微机发展,第3期. 1998 *
多线程应用程序的同步技术. 冯美霞.计算机应用,第19卷第6期. 1999 *
进程间的多线程同步事件控制方法. 宋耀文.信息技术,第11期. 2002 *

Also Published As

Publication number Publication date
HK1092898A1 (en) 2007-02-16
CN1838079A (zh) 2006-09-27

Similar Documents

Publication Publication Date Title
US7577823B2 (en) Wake-up and sleep conditions of processors in a multi-processor system
US7730333B2 (en) Intermittent computing
CN102779072B (zh) 一种嵌入式系统及其应用进程的休眠与唤醒方法
CN100375034C (zh) 在计算机系统中用于对进程进行休眠的方法和系统
CN102841674B (zh) 基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法
US8793697B2 (en) Method and system for scheduling requests in a portable computing device
CN100356328C (zh) 用于处理数据处理系统中的线程的方法和装置
CN112905365B (zh) 一种数据处理方法、装置、设备及介质
JP5866488B1 (ja) インテリジェントデュアルデータレート(ddr)メモリコントローラ
CN102662775A (zh) 一种进程通信方法和装置
CN100365582C (zh) 计算机操作系统事件同步对象扩展的数据处理方法
CN102446226A (zh) 一种实现NoSQL的键值存储引擎的方法
CN102567081B (zh) 基于多进程的全局设置方法及系统
CN114064236A (zh) 任务执行方法、装置、设备和存储介质
JP2009037403A (ja) マルチコアプロセッサにおけるコアメモリの有効活用方法
JP4773693B2 (ja) メモリ制御システム
CN110489392B (zh) 多租户间的数据访问方法、装置、系统、存储介质及设备
US20140250442A1 (en) Conditional Notification Mechanism
CN115203226B (zh) 一种分布式表锁操作方法、装置以及设备
US9411663B2 (en) Conditional notification mechanism
JP2006268390A (ja) 直列インタフェース回路
WO2022142157A1 (zh) 双缓冲编码系统及其控制方法
TW200407700A (en) Method to read the battery status by the operating system of portable computer
CN111885614A (zh) 一种cors基站组网方法、装置及存储介质
CN114296809B (zh) 一种基于操作系统的对象模型构建方法及其系统调用接口

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1092898

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1092898

Country of ref document: HK

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080130

Termination date: 20170314