您的位置:首页 > 博客中心 > 编程语言 >

《Cracking the Coding Interview》——第16章:线程与锁——题目2

时间:2022-03-21 06:15

2014-04-27 19:14

题目:如何测量上下文切换的时间?

解法:首先,上下文切换是什么,一搜就知道。对于这么一个极短的时间,要测量的话,可以通过放大N倍的方法。比如:有A和B两件事,并且经常一起发生,每件只需要花几纳秒。如果你把A事件连续做几百万次,而B时间只做了几次,这样就能排除B事件对于测量的影响。如果总时间S = mA + nB。当m >> n 时,A≈S / m。下面的测量方法类似于打乒乓球,在主线程和副线程间互相传递一个令牌,这个令牌可以是变量、管道之类的用于通信的工具。与此同时,利用操作系统提供的调度函数强制决定调度顺序,用于触发上下文切换。下面这份代码我是照着读完了才写的,初次碰见这个题目还真是无从下手,因为完全没有想到如何触发上下文切换。

代码:

gxlsystem.com,gxl网

 

《Cracking the Coding Interview》——第16章:线程与锁——题目2,gxlsystem

本类排行

今日推荐

热门手游