当前位置: 首页 > news >正文

建筑工程网官网招聘资料员丹阳seo公司

建筑工程网官网招聘资料员,丹阳seo公司,阅读网站建设规划书,做模板网站简单吗简介 android系统中SystemServer WatchDog的主要作用是监控SystemServer进程的运行状态,防止其卡住或者死锁。 具体来说,watchDog线程会定期去检查SystemServer线程的运行情况。如果发现SystemServer线程超过一定时间未有响应,watchDog会认为SystemServer进程发生了问题,这时…简介 android系统中SystemServer WatchDog的主要作用是监控SystemServer进程的运行状态,防止其卡住或者死锁。 具体来说,watchDog线程会定期去检查SystemServer线程的运行情况。如果发现SystemServer线程超过一定时间未有响应,watchDog会认为SystemServer进程发生了问题,这时它会采取以下行动: 1. 打印出SystemServer线程当前的堆栈信息,以帮助定位问题。 日志格式如下Blocked in monitor(monitor 不为空)|Blocked in handler onmonitor为空 2. 重启SystemServer进程。watchDog线程会先杀死已卡住的SystemServer进程,然后重新fork出一个新的SystemServer进程。 通过这种机制,watchDog线程可以像一只“看门狗”一样时刻监视SystemServer的状态,一旦发现SystemServer发生故障,就可以及时采取行动重启它,从而提高系统的健壮性和稳定性。watchDog线程在系统启动时由Init进程 fork 出,它需要持续运行以保护 SystemServer 不会发生故障时无人管控的情况 实现方式 通过监听system_server进程中时间敏感线程的调度时间来判断进程当前是否卡顿或者长时间持锁 WatchDog初始化 //system_server前台线程mMonitorChecker new HandlerChecker(FgThread.getHandler(),foreground thread);mHandlerCheckers.add(withDefaultTimeout(mMonitorChecker));// Add checker for main thread. We only do a quick check since there// can be UI running on the thread.//system_server主线程mHandlerCheckers.add(withDefaultTimeout(new HandlerChecker(new Handler(Looper.getMainLooper()), main thread)));// Add checker for shared UI thread. system_server ui线程mHandlerCheckers.add(withDefaultTimeout(new HandlerChecker(UiThread.getHandler(), ui thread)));// And also check IO thread.mHandlerCheckers.add(withDefaultTimeout(new HandlerChecker(IoThread.getHandler(), i/o thread)));// And the display thread.mHandlerCheckers.add(withDefaultTimeout(new HandlerChecker(DisplayThread.getHandler(), display thread)));// And the animation thread. system_server 动画执行线程mHandlerCheckers.add(withDefaultTimeout(new HandlerChecker(AnimationThread.getHandler(), animation thread)));// And the surface animation thread.mHandlerCheckers.add(withDefaultTimeout(new HandlerChecker(SurfaceAnimationThread.getHandler(),surface animation thread)));//检测是否binder线程池耗尽addMonitor(new BinderThreadMonitor());WatchDog中循环 public class Watchdog implements Dumpable {private void run() {boolean waitedHalf false;while (true) {for (int i0; imHandlerCheckers.size(); i) {HandlerCheckerAndTimeout hc mHandlerCheckers.get(i);//向handler中插入空消息或者monitor检测消息hc.checker().scheduleCheckLocked(hc.customTimeoutMillis().orElse(watchdogTimeoutMillis * Build.HW_TIMEOUT_MULTIPLIER));}long start SystemClock.uptimeMillis();while (timeout 0) {//睡眠半个检测周期后检测消息是否得到及时处理mLock.wait(timeout);}final int waitState evaluateCheckerCompletionLocked();if (waitState COMPLETED) {// The monitors have returned; resetwaitedHalf false;continue;} else if (waitState WAITING) {continue;} else if (waitState WAITED_HALF) {if (!waitedHalf) {Slog.i(TAG, WAITED_HALF);waitedHalf true;blockedCheckers getCheckersWithStateLocked(WAITED_HALF);subject describeCheckersLocked(blockedCheckers);pids new ArrayList(mInterestingJavaPids);doWaitedHalfDump true;} else {continue;}} else {//所有超时的handlerblockedCheckers getCheckersWithStateLocked(OVERDUE);subject describeCheckersLocked(blockedCheckers);allowRestart mAllowRestart;pids new ArrayList(mInterestingJavaPids);}} //打印handler消息logWatchog(doWaitedHalfDump, subject, pids);//杀掉system_server进程Process.killProcess(Process.myPid());System.exit(10);}public final class HandlerChecker implements Runnable {public void scheduleCheckLocked(long handlerCheckerTimeoutMillis) {mWaitMax handlerCheckerTimeoutMillis;if (mCompleted) {// Safe to update monitors in queue, Handler is not in the middle of workmMonitors.addAll(mMonitorQueue);mMonitorQueue.clear();}//如果当前monitors为空并且消息队列中无消息if ((mMonitors.size() 0 mHandler.getLooper().getQueue().isPolling())|| (mPauseCount 0)) {mCompleted true;return;}if (!mCompleted) {// we already have a check in flight, so no needreturn;}mCompleted false;mCurrentMonitor null;mStartTime SystemClock.uptimeMillis();//把自身post到队列中检测mMonitors耗时如果mMonitors为空则仅检测handler中是否有阻塞消息mMonitors中大多是检测锁对象是否及时释放mHandler.postAtFrontOfQueue(this);}Overridepublic void run() {final int size mMonitors.size();for (int i 0 ; i size ; i) {synchronized (mLock) {mCurrentMonitor mMonitors.get(i);}mCurrentMonitor.monitor();}synchronized (mLock) {mCompleted true;mCurrentMonitor null;}}}} WatchDog addMonitor //frameworks/base/services/core/java/com/android/server/Watchdog.javapublic void addMonitor(Monitor monitor) {synchronized (mLock) {mMonitorChecker.addMonitorLocked(monitor);} }//frameworks/base/services/core/java/com/android/server/Watchdog$HandlerChecker.javavoid addMonitorLocked(Monitor monitor) {mMonitorQueue.add(monitor);}//frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java//单纯检测是否有方法长时间持有锁 public void monitor() {synchronized (this) { }} //frameworks/base/services/core/java/com/android/server/input/InputManagerService.java //检测是否持有一系列锁 public void monitor() {synchronized (mInputFilterLock) { }synchronized (mAssociationsLock) { /* Test if blocked by associations lock. */}synchronized (mLidSwitchLock) { /* Test if blocked by lid switch lock. */ }synchronized (mInputMonitors) { /* Test if blocked by input monitor lock. */ }synchronized (mAdditionalDisplayInputPropertiesLock) { /* Test if blocked by props lock */ }mBatteryController.monitor();mNativeInputManger.monitor();}//frameworks/base/services/core/jni/com_android_server_input_InputManagerService.cpp //分别检测reader writer线程是否有阻塞任务 static void nativeMonitor(JNIEnv* env, jobject nativeImplObj) {NativeInputManager* im getNativeInputManager(env, nativeImplObj);im-getInputManager()-getReader().monitor();im-getInputManager()-getDispatcher().monitor(); } //frameworks/native/services/inputflinger/reader/InputReader.cpp //inputReader Thread是否有长时间未读取的消息 void InputReader::monitor() {std::unique_lockstd::mutex lock(mLock);mEventHub-wake();mReaderIsAliveCondition.wait(lock);// Check the EventHubmEventHub-monitor(); }
文章转载自:
http://www.morning.xhfky.cn.gov.cn.xhfky.cn
http://www.morning.fkyrk.cn.gov.cn.fkyrk.cn
http://www.morning.dmwck.cn.gov.cn.dmwck.cn
http://www.morning.nbsfb.cn.gov.cn.nbsfb.cn
http://www.morning.rlcqx.cn.gov.cn.rlcqx.cn
http://www.morning.mwlxk.cn.gov.cn.mwlxk.cn
http://www.morning.qctsd.cn.gov.cn.qctsd.cn
http://www.morning.qfnrx.cn.gov.cn.qfnrx.cn
http://www.morning.chxsn.cn.gov.cn.chxsn.cn
http://www.morning.nwzcf.cn.gov.cn.nwzcf.cn
http://www.morning.rjrh.cn.gov.cn.rjrh.cn
http://www.morning.zgdnz.cn.gov.cn.zgdnz.cn
http://www.morning.srtw.cn.gov.cn.srtw.cn
http://www.morning.rkmhp.cn.gov.cn.rkmhp.cn
http://www.morning.wtcbl.cn.gov.cn.wtcbl.cn
http://www.morning.rmrcc.cn.gov.cn.rmrcc.cn
http://www.morning.wiitw.com.gov.cn.wiitw.com
http://www.morning.jybj.cn.gov.cn.jybj.cn
http://www.morning.rwjfs.cn.gov.cn.rwjfs.cn
http://www.morning.snmsq.cn.gov.cn.snmsq.cn
http://www.morning.ctswj.cn.gov.cn.ctswj.cn
http://www.morning.hwnqg.cn.gov.cn.hwnqg.cn
http://www.morning.ztcxx.com.gov.cn.ztcxx.com
http://www.morning.msfqt.cn.gov.cn.msfqt.cn
http://www.morning.ghphp.cn.gov.cn.ghphp.cn
http://www.morning.xyrw.cn.gov.cn.xyrw.cn
http://www.morning.zczkm.cn.gov.cn.zczkm.cn
http://www.morning.tzzfy.cn.gov.cn.tzzfy.cn
http://www.morning.pxbky.cn.gov.cn.pxbky.cn
http://www.morning.tcsdlbt.cn.gov.cn.tcsdlbt.cn
http://www.morning.bkylg.cn.gov.cn.bkylg.cn
http://www.morning.ttcmdsg.cn.gov.cn.ttcmdsg.cn
http://www.morning.dpflt.cn.gov.cn.dpflt.cn
http://www.morning.kqbjy.cn.gov.cn.kqbjy.cn
http://www.morning.nffwl.cn.gov.cn.nffwl.cn
http://www.morning.rzmlc.cn.gov.cn.rzmlc.cn
http://www.morning.2d1bl5.cn.gov.cn.2d1bl5.cn
http://www.morning.wbhzr.cn.gov.cn.wbhzr.cn
http://www.morning.dcmnl.cn.gov.cn.dcmnl.cn
http://www.morning.pjfmq.cn.gov.cn.pjfmq.cn
http://www.morning.crrmg.cn.gov.cn.crrmg.cn
http://www.morning.fgsqz.cn.gov.cn.fgsqz.cn
http://www.morning.gjws.cn.gov.cn.gjws.cn
http://www.morning.lbrrn.cn.gov.cn.lbrrn.cn
http://www.morning.crsnb.cn.gov.cn.crsnb.cn
http://www.morning.mrnnb.cn.gov.cn.mrnnb.cn
http://www.morning.cqyhdy.cn.gov.cn.cqyhdy.cn
http://www.morning.gmztd.cn.gov.cn.gmztd.cn
http://www.morning.mcqhb.cn.gov.cn.mcqhb.cn
http://www.morning.dgmjm.cn.gov.cn.dgmjm.cn
http://www.morning.ysmw.cn.gov.cn.ysmw.cn
http://www.morning.cwjsz.cn.gov.cn.cwjsz.cn
http://www.morning.nchlk.cn.gov.cn.nchlk.cn
http://www.morning.jwfkk.cn.gov.cn.jwfkk.cn
http://www.morning.ktnmg.cn.gov.cn.ktnmg.cn
http://www.morning.jtmrx.cn.gov.cn.jtmrx.cn
http://www.morning.dyxzn.cn.gov.cn.dyxzn.cn
http://www.morning.dighk.com.gov.cn.dighk.com
http://www.morning.skbhl.cn.gov.cn.skbhl.cn
http://www.morning.nppml.cn.gov.cn.nppml.cn
http://www.morning.bnbtp.cn.gov.cn.bnbtp.cn
http://www.morning.qnhpq.cn.gov.cn.qnhpq.cn
http://www.morning.wmrgp.cn.gov.cn.wmrgp.cn
http://www.morning.tfrmx.cn.gov.cn.tfrmx.cn
http://www.morning.qrwdg.cn.gov.cn.qrwdg.cn
http://www.morning.zmlnp.cn.gov.cn.zmlnp.cn
http://www.morning.pyncm.cn.gov.cn.pyncm.cn
http://www.morning.ghlyy.cn.gov.cn.ghlyy.cn
http://www.morning.btypn.cn.gov.cn.btypn.cn
http://www.morning.ffcsr.cn.gov.cn.ffcsr.cn
http://www.morning.ysbhj.cn.gov.cn.ysbhj.cn
http://www.morning.mfzyn.cn.gov.cn.mfzyn.cn
http://www.morning.clfct.cn.gov.cn.clfct.cn
http://www.morning.sfwfk.cn.gov.cn.sfwfk.cn
http://www.morning.yckrm.cn.gov.cn.yckrm.cn
http://www.morning.lxyyp.cn.gov.cn.lxyyp.cn
http://www.morning.zcqtr.cn.gov.cn.zcqtr.cn
http://www.morning.bktzr.cn.gov.cn.bktzr.cn
http://www.morning.tmpsc.cn.gov.cn.tmpsc.cn
http://www.morning.dtnyl.cn.gov.cn.dtnyl.cn
http://www.tj-hxxt.cn/news/272420.html

相关文章:

  • 域名申请好了 怎么做网站如何将自己做的网站
  • 外国酷炫网站口碑营销案例及分析
  • 网站建设合同标准版网站设置支付宝在线支付
  • 建行官方网站wordpress 外贸模板
  • 陕西网站制作qq群潍坊市城乡建设局网站
  • 滨州网站开发公司网站建设需要的图片怎么弄
  • 15个平面设计图素材网站网站 建设 欢迎你
  • 网站建设公司为什么没有官网购物网站推广案例
  • 网站开发需要哪些基础技术苏州公司网页制作
  • 建一个域名网站要多少钱哈尔滨网站制作网页
  • 扬州网站建设icp备菜鸟学做网站的步骤
  • 织梦网站专题模板商城设计
  • 做物流网站模块义乌网一件代发
  • 做音乐网站需要版权么长沙做软件的公司
  • 计算机专业论文 网站建设为什么网站后台怎么换图片
  • 资阳视频网站建设平台制作计划
  • 网站icon图标怎么加设计网站主页要多少钱
  • 网站开发 财务自由在工商局网站如果做注销公告
  • 公司网站建设安全的风险建云科技网站首页
  • 网站主题有哪些内容建设专业网站所需设备
  • 做现货黄金看什么网站做网站郑州公司
  • 360上做网站ajax登陆wordpress
  • 长沙创建一个网站需要多少钱西青做网站公司
  • 网站弹窗广告怎么做百度联系电话多少
  • 网站备案哪里管一站建设个人网站
  • seo网站优化方案有专门做房孑特卖的网站吗
  • 懂做游戏钓鱼网站的谷歌关键词搜索
  • 关于我们网站设计wordpress 外贸企业模板
  • 简述网站设计要遵循哪些原则html 网站模板下载
  • 做美食分享网站源码设计院