JPDA 架构研究6 - Agent利用环境指针访问VM (线程管理篇)
引入: 上篇文章讲解了分类:内存管理,现在讲线程类操作的接口。 分类2:线程类操作 a.GetThreadState.获取线程状态 jvmtiError GetThreadState(jvmtiEnv*env, jthreadthread, jint*thread_state_ptr) 大家都知道线程有很多种状态,比如Alive,Terminated,Runnable, 等待进入Synchronize Block,Waiting,Sleeping,Parked,Suspended,Interrupted等。 它入参thread表示要查询的线程,返回thread_state_ptr表示线程状态。 b.GetAllThreads.获取所有活着的线程,这些线程必须是连接到当前VM并且Alive的。 jvmtiError GetAllThreads(jvmtiEnv*env, jint*threads_count_ptr, jthread**threads_ptr) 它返回threads_count_ptr表示活着的线程数量,返回threads_ptr表示活着的线程的引用数组。 c.Suspe...


