[发明专利]基于对象池来实现线程操作的方法和设备无效
| 申请号: | 200810098476.8 | 申请日: | 2008-05-28 |
| 公开(公告)号: | CN101593131A | 公开(公告)日: | 2009-12-02 |
| 发明(设计)人: | 赵奕;郑凯;王海川;高志国 | 申请(专利权)人: | 国际商业机器公司 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50 |
| 代理公司: | 北京市金杜律师事务所 | 代理人: | 冯 谱 |
| 地址: | 美国纽*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 对象 实现 线程 操作 方法 设备 | ||
1.一种基于对象池来实现线程操作的方法,包括:
将多个线程通过映射表与全局对象池中的多个子对象池进行一对一的绑定;
响应于线程对全局对象池的访问,通过映射表查找与该线程绑定的子对象池;以及
全局对象池将线程的操作转发到查找到的与该线程绑定的子对象池。
2.根据权利要求1所述的方法,进一步包括:
响应于未查找到与该线程绑定的子对象池,全局对象池创建新的子对象池;以及
将创建的新的子对象池与该线程进行绑定。
3.根据权利要求1所述的方法,其中所述映射表是哈希表、线性表、堆或树状表中的任意一个。
4.根据权利要求1所述的方法,其中通过所述映射表将所述线程的标识符与所述子对象池引用进行绑定。
5.根据权利要求1所述的方法,其中所述操作是Get/Put操作。
6.根据权利要求5所述的方法,其中当所述线程的操作为Get操作时,所述方法进一步包括:
判断查找到的与线程绑定的子对象池是否为空;
响应于判断出与线程绑定的子对象池不为空,从该与线程绑定的子对象池取出对象返回给线程;以及
响应于判断出与线程绑定的子对象池为空,在该与线程绑定的子对象池中创建新的对象并返回给线程。
7.根据权利要求6所述的方法,其中当判断出与线程绑定的子对象池为空时,所述方法进一步包括:
响应于确定与线程绑定的子对象池为空的时间超出某个阈值并且所述全局对象池中存在满的子对象池,将这两个子对象池与各自绑定的线程的映射关系进行交换。
8.根据权利要求5所述的方法,其中当所述线程的操作为Put操作时,所述方法进一步包括:
判断查找到的与线程绑定的子对象池是否为满;
响应于判断出与线程绑定的子对象池不为满,将对象放入到与线程绑定的子对象池中;以及
响应于判断出与线程绑定的子对象池为满,抛弃所述对象。
9.根据权利要求8所述的方法,其中当判断出与线程绑定的子对象池为满时,所述方法进一步包括:
响应于确定与线程绑定的子对象池为满的时间超出某个阈值并且所述全局对象池中存在空的子对象池,将这两个子对象池与各自绑定的线程的映射关系进行交换。
10.一种基于对象池来实现线程操作的设备,该设备包括:
映射装置,用于将多个线程通过映射表与全局对象池中的多个子对象池进行一对一的绑定;
转发装置,用于响应于所述线程对所述全局对象池的访问,将所述线程的操作转发到通过映射装置查找到的与该线程绑定的子对象池。
11.根据权利要求10所述的设备,当映射装置未查找到与该线程绑定的子对象池时,所述转发装置创建新的子对象池,并且所述映射装置将该线程与所述新的子对象池进行绑定。
12.根据权利要求10所述的设备,其中所述映射表是哈希表、线性表、堆或树状表中的任意一个。
13.根据权利要求10所述的设备,其中通过所述映射表将所述线程的标识符与所述子对象池引用进行绑定。
14.根据权利要求10所述的设备,其中所述操作是Get/Put操作。
15.根据权利要求14所述的设备,其中当所述线程的操作为Get操作时,所述转发装置执行以下操作:
判断查找到的与线程绑定的子对象池是否为空;
响应于判断出与线程绑定的子对象池不为空,从该与线程绑定的子对象池取出对象返回给所述线程;以及
响应于判断出与线程绑定的子对象池为空,在该与线程绑定的子对象池中创建新的对象并返回给所述线程。
16.根据权利要求15所述的设备,其中响应于确定与线程绑定的子对象池为空的时间超出某个阈值并且所述全局对象池中存在满的子对象池,所述映射装置将这两个子对象池与各自绑定的线程的映射关系进行交换。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810098476.8/1.html,转载请声明来源钻瓜专利网。





