^ (Handle to Object on Managed Heap)

本文介绍如何在托管堆上声明对象句柄,并演示了通过句柄访问对象成员的方法。文章还展示了如何初始化句柄及使用句柄进行类型转换。

Declares a handle to an object on the managed heap.

Remarks

A handle to an object on the managed heap points to the "whole" object, and not to a member of the object.

See gcnew for information on how to create an object on the managed heap.

In Visual C++ 2002 and Visual C++ 2003, __gc * was used to declare an object on the managed heap. The ^ replaces __gc * in the new syntax.

The common language runtime maintains a separate heap on which it implements a precise, asynchronous, compacting garbage collection scheme. To work correctly, it must track all storage locations that can point into this heap at runtime. ^ provides a handle through which the garbage collector can track a reference to an object on the managed heap, thereby being able to update it whenever that object is moved.

Because regular C++ pointers (*) and references (&) cannot be tracked precisely, a handle-to object declarator is used.

Member selection through a handle (^) uses the pointer-to-member operator (->).

For more information, see How to: Declare Handles in Native Types .

Example

This sample shows how to create an instance of reference type on the managed heap. This sample also shows that you can initialize one handle with another, resulting in two references to same object on managed, garbage-collected heap. Notice that assigning nullptr to one handle does not mark the object for garbage collection.

 
// mcppv2_handle.cpp
// compile with: /clr
ref class MyClass {
public:
   MyClass() : i(){}
   int i;
   void Test() {
      i++;
      System::Console::WriteLine(i);
   }
};

int main() {
   MyClass ^ p_MyClass = gcnew MyClass;
   p_MyClass->Test();

   MyClass ^ p_MyClass2;
   p_MyClass2 = p_MyClass;

   p_MyClass = nullptr;
   p_MyClass2->Test();   
}
Output
 
1
2

The following sample shows how to declare a handle to an object on the managed heap, where the type of object is a boxed value type. The sample also shows how to get the value type from the boxed object.

 
// mcppv2_handle_2.cpp
// compile with: /clr
using namespace System;

void Test(Object^ o) {
   Int32^ i = dynamic_cast<Int32^>(o);

   if(i)
      Console::WriteLine(i);
   else
      Console::WriteLine("Not a boxed int");
}

int main() {
   String^ str = "test";
   Test(str);

   int n = 100;
   Test(n);
}
Output
 
Not a boxed int
100

This sample shows that the common C++ idiom of using a void* pointer to point to an arbitrary object is replaced by Object^, which can hold a handle to any reference class. It also shows that all types, such as arrays and delegates, can be converted to an object handle.

 
// mcppv2_handle_3.cpp
// compile with: /clr
using namespace System;
using namespace System::Collections;
public delegate void MyDel();
ref class MyClass {
public:
   void Test() {}
};

void Test(Object ^ x) {
   Console::WriteLine("Type is {0}", x->GetType());
}

int main() {
   // handle to Object can hold any ref type
   Object ^ h_MyClass = gcnew MyClass;

   ArrayList ^ arr = gcnew ArrayList();
   arr->Add(gcnew MyClass);

   h_MyClass = dynamic_cast<MyClass ^>(arr[0]);
   Test(arr);

   Int32 ^ bi = 1;
   Test(bi);

   MyClass ^ h_MyClass2 = gcnew MyClass;

   MyDel^ DelInst = gcnew MyDel(h_MyClass2, &MyClass::Test);
   Test(DelInst);
}
Output
 
Type is System.Collections.ArrayList
Type is System.Int32
Type is MyDel

This sample shows that a handle can be dereferenced and that a member can be accessed via a dereferenced handle.

 
// mcppv2_handle_4.cpp
// compile with: /clr
using namespace System;
value struct DataCollection {
private:
   int Size;
   array<String^>^ x;

public:
   DataCollection(int i) : Size(i) {
      x = gcnew array<String^>(Size);
      for (int i = 0 ; i < Size ; i++)
         x[i] = i.ToString();
   }

   void f(int Item) {
      if (Item >= Size)
      {
         System::Console::WriteLine("Cannot access array element {0}, size is {1}", Item, Size);
         return;
      }
      else
         System::Console::WriteLine("Array value: {0}", x[Item]);
   }
};

void f(DataCollection y, int Item) {
   y.f(Item);
}

int main() {
   DataCollection ^ a = gcnew DataCollection(10);
   f(*a, 7);   // dereference a handle, return handle's object
   (*a).f(11);   // access member via dereferenced handle
}
Output
 
Array value: 7
Cannot access array element 11, size is 10

This sample shows that a native reference (&) can’t bind to an int member of a managed type, .as the int may be stored in the garbage collected heap, and native references don’t track object movement in the managed heap. The fix is to use a local variable, or to change & to %, making it a tracking reference.

 
// mcppv2_handle_5.cpp
// compile with: /clr
ref struct A {
   void Test(unsigned int &){}
   void Test2(unsigned int %){}
   unsigned int i;
};

int main() {
   A a;
   a.i = 9;
   a.Test(a.i);   // C2664
   a.Test2(a.i);   // OK

   unsigned int j = 0;
   a.Test(j);   // OK
}
 
分析安卓ANR日志: ----- pid 27068 at 2025-09-01 08:35:45 ----- Cmd line: com.miui.dmregservice Build fingerprint: 'Redmi/gauguinpro/gauguinpro:11/RKQ1.200826.002/V12.5.7.0.RJSCNXM:user/release-keys' ABI: 'arm64' Build type: optimized Zygote loaded classes=15964 post zygote classes=178 Dumping registered class loaders #0 dalvik.system.PathClassLoader: [], parent #1 #1 java.lang.BootClassLoader: [], no parent #2 dalvik.system.PathClassLoader: [/system/framework/tcmclient.jar], parent #0 #3 dalvik.system.PathClassLoader: [], parent #0 #4 dalvik.system.PathClassLoader: [/system/priv-app/DMRegService/DMRegService.apk], parent #1 Done dumping class loaders Classes initialized: 188 in 19.099ms Intern table: 32487 strong; 594 weak JNI: CheckJNI is off; globals=731 (plus 53 weak) Libraries: /system/lib64/libaes-jni.so libandroid.so libaudioeffect_jni.so libcompiler_rt.so libicu_jni.so libjavacore.so libjavacrypto.so libjnigraphics.so libmedia_jni.so libmiuinative.so libopenjdk.so libqti_performance.so librs_jni.so libsfplugin_ccodec.so libsoundpool.so libstats_jni.so libwebviewchromium_loader.so (17) Heap: 0% free, 256MB/256MB; 6743537 objects Dumping cumulative Gc timings Start Dumping histograms for 4377 iterations for concurrent copying MarkingPhase: Sum: 407.621s 99% C.I. 0.377ms-777.999ms Avg: 93.170ms Max: 1311.706ms ProcessMarkStack: Sum: 281.231s 99% C.I. 0.214ms-823.277ms Avg: 64.252ms Max: 2343.286ms ScanCardsForSpace: Sum: 104.203s 99% C.I. 0.084ms-282.336ms Avg: 23.807ms Max: 416.563ms ClearFromSpace: Sum: 26.585s 99% C.I. 0.092ms-33.046ms Avg: 6.073ms Max: 137.219ms ScanImmuneSpaces: Sum: 26.274s 99% C.I. 1.740ms-10.739ms Avg: 3.002ms Max: 38.684ms SweepLargeObjects: Sum: 19.520s 99% C.I. 0.051ms-22.222ms Avg: 4.459ms Max: 52.095ms VisitConcurrentRoots: Sum: 12.732s 99% C.I. 1.017ms-4.789ms Avg: 1.454ms Max: 18.064ms CaptureThreadRootsForMarking: Sum: 10.865s 99% C.I. 0.078ms-24.833ms Avg: 2.483ms Max: 76.475ms EmptyRBMarkBitStack: Sum: 2.792s 99% C.I. 8.791us-16676.800us Avg: 638.100us Max: 131742us InitializePhase: Sum: 1.776s 99% C.I. 81us-1267.625us Avg: 405.784us Max: 2028us SweepSystemWeaks: Sum: 711.284ms 99% C.I. 88us-779.326us Avg: 162.504us Max: 24490us GrayAllDirtyImmuneObjects: Sum: 689.803ms 99% C.I. 90us-558.812us Avg: 157.597us Max: 2826us FlipOtherThreads: Sum: 592.254ms 99% C.I. 51us-563.218us Avg: 135.310us Max: 3265us VisitNonThreadRoots: Sum: 522.591ms 99% C.I. 38us-236us Avg: 59.711us Max: 666us FlipThreadRoots: Sum: 344.754ms 99% C.I. 1.122us-1770.500us Avg: 78.764us Max: 15055us CopyingPhase: Sum: 229.989ms 99% C.I. 4us-2911.500us Avg: 52.544us Max: 20150us ForwardSoftReferences: Sum: 193.330ms 99% C.I. 9us-194.921us Avg: 44.189us Max: 3234us RecordFree: Sum: 154.577ms 99% C.I. 22us-129.250us Avg: 35.315us Max: 4434us MarkZygoteLargeObjects: Sum: 88.839ms 99% C.I. 9us-108.812us Avg: 20.296us Max: 567us ProcessReferences: Sum: 80.408ms 99% C.I. 0.257us-93.589us Avg: 9.185us Max: 1130us ThreadListFlip: Sum: 74.857ms 99% C.I. 5us-97.755us Avg: 17.102us Max: 4208us EnqueueFinalizerReferences: Sum: 71.799ms 99% C.I. 6us-98.390us Avg: 16.403us Max: 239us (Paused)GrayAllNewlyDirtyImmuneObjects: Sum: 66.861ms 99% C.I. 9us-93.130us Avg: 15.275us Max: 3162us ResumeRunnableThreads: Sum: 66.580ms 99% C.I. 1us-127.446us Avg: 15.211us Max: 282us SwapBitmaps: Sum: 65.158ms 99% C.I. 8us-49.932us Avg: 14.886us Max: 206us ReclaimPhase: Sum: 63.089ms 99% C.I. 3us-99.910us Avg: 14.413us Max: 8802us (Paused)SetFromSpace: Sum: 38.540ms 99% C.I. 0.251us-50.442us Avg: 8.805us Max: 370us MarkStackAsLive: Sum: 30.099ms 99% C.I. 2us-49.818us Avg: 6.876us Max: 187us SweepAllocSpace: Sum: 19.862ms 99% C.I. 2us-49.818us Avg: 4.537us Max: 132us (Paused)FlipCallback: Sum: 14.589ms 99% C.I. 1us-49.772us Avg: 3.333us Max: 886us Sweep: Sum: 12.399ms 99% C.I. 1us-49.772us Avg: 2.832us Max: 1245us UnBindBitmaps: Sum: 9.048ms 99% C.I. 1us-45us Avg: 2.067us Max: 45us (Paused)ClearCards: Sum: 7.114ms 99% C.I. 250ns-49758ns Avg: 73ns Max: 2063000ns ResumeOtherThreads: Sum: 4.254ms 99% C.I. 250ns-49852ns Avg: 971ns Max: 217000ns Done Dumping histograms concurrent copying paused: Sum: 213.024ms 99% C.I. 21us-498.296us Avg: 48.668us Max: 4260us concurrent copying freed-bytes: Avg: 72MB Max: 216MB Min: 0B Freed-bytes histogram: 0:731,20480:1518,40960:1123,61440:71,81920:4,143360:1,163840:17,184320:38,204800:874 concurrent copying total time: 897.756s mean time: 205.107ms concurrent copying freed: 4076473440 objects with total size 308GB concurrent copying throughput: 4.54074e+06/s / 351MB/s per cpu-time: 382786808/s / 365MB/s Average major GC reclaim bytes ratio 0.151738 over 4377 GC cycles Average major GC copied live bytes ratio 0.538818 over 4381 major GCs Cumulative bytes moved 56104487208 Cumulative objects moved 1682145047 Peak regions allocated 882 (220MB) / 1024 (256MB) Start Dumping histograms for 4376 iterations for young concurrent copying ProcessMarkStack: Sum: 261.385s 99% C.I. 0.113ms-601.907ms Avg: 59.731ms Max: 847.936ms ScanCardsForSpace: Sum: 124.347s 99% C.I. 0.115ms-443.903ms Avg: 28.415ms Max: 636.348ms ThreadListFlip: Sum: 22.720s 99% C.I. 0.010ms-77.779ms Avg: 5.192ms Max: 85.781ms ScanImmuneSpaces: Sum: 17.205s 99% C.I. 2.067ms-15.023ms Avg: 3.931ms Max: 35.051ms ClearFromSpace: Sum: 11.730s 99% C.I. 0.010ms-17.432ms Avg: 2.680ms Max: 70.950ms VisitConcurrentRoots: Sum: 7.581s 99% C.I. 1.018ms-6.003ms Avg: 1.732ms Max: 14.137ms SweepArray: Sum: 1.623s 99% C.I. 3us-6965.333us Avg: 370.912us Max: 12241us InitializePhase: Sum: 1.593s 99% C.I. 152us-1192.166us Avg: 364.035us Max: 11618us EmptyRBMarkBitStack: Sum: 1.533s 99% C.I. 4.206us-13624us Avg: 350.345us Max: 50705us GrayAllDirtyImmuneObjects: Sum: 906.267ms 99% C.I. 112us-660.599us Avg: 207.099us Max: 3455us FlipOtherThreads: Sum: 817.301ms 99% C.I. 80us-736.959us Avg: 186.768us Max: 10146us SweepSystemWeaks: Sum: 761.883ms 99% C.I. 100.090us-679.428us Avg: 174.104us Max: 2980us CopyingPhase: Sum: 737.008ms 99% C.I. 5us-5792us Avg: 168.420us Max: 78766us FlipThreadRoots: Sum: 481.351ms 99% C.I. 1.161us-3208us Avg: 109.997us Max: 10801us VisitNonThreadRoots: Sum: 322.082ms 99% C.I. 40us-311.777us Avg: 73.601us Max: 2963us RecordFree: Sum: 159.366ms 99% C.I. 0.271us-129.471us Avg: 18.209us Max: 1091us ResumeRunnableThreads: Sum: 103.752ms 99% C.I. 1us-187.172us Avg: 23.709us Max: 5880us ProcessReferences: Sum: 88.833ms 99% C.I. 0.259us-95.092us Avg: 10.150us Max: 935us (Paused)GrayAllNewlyDirtyImmuneObjects: Sum: 87.416ms 99% C.I. 9us-105.888us Avg: 19.976us Max: 1337us EnqueueFinalizerReferences: Sum: 71.267ms 99% C.I. 6us-98.344us Avg: 16.285us Max: 826us MarkZygoteLargeObjects: Sum: 41.806ms 99% C.I. 3us-61.636us Avg: 9.553us Max: 1184us (Paused)SetFromSpace: Sum: 41.763ms 99% C.I. 0.254us-124.486us Avg: 9.543us Max: 1634us ReclaimPhase: Sum: 41.210ms 99% C.I. 3us-95.523us Avg: 9.417us Max: 1722us ForwardSoftReferences: Sum: 39.831ms 99% C.I. 3us-49.955us Avg: 9.102us Max: 3182us SwapBitmaps: Sum: 33.890ms 99% C.I. 4us-49.863us Avg: 7.744us Max: 171us ResetStack: Sum: 31.634ms 99% C.I. 2us-49.932us Avg: 7.228us Max: 931us UnBindBitmaps: Sum: 21.586ms 99% C.I. 2us-49.806us Avg: 4.932us Max: 306us (Paused)FlipCallback: Sum: 15.990ms 99% C.I. 1us-49.852us Avg: 3.654us Max: 164us (Paused)ClearCards: Sum: 11.024ms 99% C.I. 250ns-49769ns Avg: 114ns Max: 1858000ns ResumeOtherThreads: Sum: 5.534ms 99% C.I. 0.250us-49.784us Avg: 1.264us Max: 112us FreeList: Sum: 1.634ms 99% C.I. 0.250us-25us Avg: 1.638us Max: 25us Done Dumping histograms young concurrent copying paused: Sum: 22.887s 99% C.I. 0.025ms-77.186ms Avg: 5.230ms Max: 85.832ms young concurrent copying freed-bytes: Avg: 8982KB Max: 90MB Min: 0B Freed-bytes histogram: 0:2931,10240:749,20480:558,30720:38,40960:60,51200:37,61440:2,92160:1 young concurrent copying total time: 454.543s mean time: 103.871ms young concurrent copying freed: 863768394 objects with total size 37GB young concurrent copying throughput: 1.9003e+06/s / 84MB/s per cpu-time: 96565942/s / 92MB/s Average minor GC reclaim bytes ratio 0.0578315 over 4376 GC cycles Average minor GC copied live bytes ratio 0.351063 over 4376 minor GCs Cumulative bytes moved 49489427536 Cumulative objects moved 1508266327 Peak regions allocated 882 (220MB) / 1024 (256MB) Total time spent in GC: 1352.299s Mean GC size throughput: 261MB/s per cpu-time: 276MB/s Mean GC object throughput: 3.65322e+06 objects/s Total number of allocations 4946979908 Total bytes allocated 345GB Total bytes freed 345GB Free memory 55KB Free memory until GC 55KB Free memory until OOME 55KB Total memory 256MB Max memory 256MB Zygote space size 3556KB Total mutator paused time: 23.100s Total time waiting for GC to complete: 394.162s Total GC count: 8759 Total GC time: 1358.123s Total blocking GC count: 3623 Total blocking GC time: 533.131s Histogram of GC count per 10000 ms: 0:3137,1:9,2:3,3:7,4:14,5:8,6:11,7:9,8:157,9:13,10:376,11:28,12:19,13:27,14:32,15:20,16:19,17:17,18:12,19:5,20:41 Histogram of blocking GC count per 10000 ms: 0:3164,1:6,2:9,3:117,4:469,5:57,6:14,7:40,8:81,9:5,10:1,14:1 Native bytes total: 14255852 registered: 54108 Total native bytes at last GC: 14256364 /system/framework/oat/arm64/android.hidl.base-V1.0-java.odex: quicken /system/framework/oat/arm64/android.hidl.manager-V1.0-java.odex: quicken /system/framework/oat/arm64/android.test.base.odex: quicken /system/framework/oat/arm64/org.apache.http.legacy.odex: speed-profile /data/dalvik-cache/arm64/system@priv-app@DMRegService@DMRegService.apk@classes.dex: speed Current JIT code cache size (used / resident): 19KB / 32KB Current JIT data cache size (used / resident): 22KB / 32KB Zygote JIT code cache size (at point of fork): 59KB / 64KB Zygote JIT data cache size (at point of fork): 53KB / 60KB Current JIT mini-debug-info size: 51KB Current JIT capacity: 64KB Current number of JIT JNI stub entries: 0 Current number of JIT code cache entries: 73 Total number of JIT compilations: 27 Total number of JIT compilations for on stack replacement: 0 Total number of JIT code cache collections: 0 Memory used for stack maps: Avg: 152B Max: 1208B Min: 24B Memory used for compiled code: Avg: 745B Max: 4652B Min: 112B Memory used for profiling info: Avg: 207B Max: 2096B Min: 32B Start Dumping histograms for 73 iterations for JIT timings Compiling: Sum: 195.105ms 99% C.I. 0.372ms-16.458ms Avg: 2.672ms Max: 20.238ms TrimMaps: Sum: 5.313ms 99% C.I. 17us-395.250us Avg: 72.780us Max: 405us Done Dumping histograms Memory used for compilation: Avg: 147KB Max: 837KB Min: 16KB suspend all histogram: Sum: 22.745s 99% C.I. 0.011ms-43.325ms Avg: 2.593ms Max: 85.769ms DALVIK THREADS (33): "Signal Catcher" daemon prio=10 tid=6 Runnable | group="system" sCount=0 dsCount=0 flags=0 obj=0x12c401f8 self=0xb400006f78638000 | sysTid=27078 nice=-20 cgrp=default sched=0/0 handle=0x6f7996bcc0 | state=R schedstat=( 26959839 1784165 23 ) utm=1 stm=0 core=0 HZ=100 | stack=0x6f79874000-0x6f79876000 stackSize=995KB | held mutexes= "mutator lock"(shared held) native: #00 pc 00000000004a0c68 /apex/com.android.art/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+140) native: #01 pc 00000000005ae000 /apex/com.android.art/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool, BacktraceMap*, bool) const+376) native: #02 pc 00000000005cb13c /apex/com.android.art/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread*)+924) native: #03 pc 00000000005c507c /apex/com.android.art/lib64/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+528) native: #04 pc 00000000005c4208 /apex/com.android.art/lib64/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool)+1920) native: #05 pc 00000000005c36a8 /apex/com.android.art/lib64/libart.so (art::ThreadList::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+776) native: #06 pc 000000000056f5f8 /apex/com.android.art/lib64/libart.so (art::Runtime::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+196) native: #07 pc 0000000000584c38 /apex/com.android.art/lib64/libart.so (art::SignalCatcher::HandleSigQuit()+1396) native: #08 pc 0000000000583c04 /apex/com.android.art/lib64/libart.so (art::SignalCatcher::Run(void*)+348) native: #09 pc 00000000000eb868 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) native: #10 pc 000000000008ba88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (no managed stack frames) "main" prio=5 tid=1 Native | group="main" sCount=1 dsCount=0 flags=1 obj=0x72caf308 self=0xb40000700ea2dc00 | sysTid=27068 nice=0 cgrp=default sched=0/0 handle=0x701017f4f8 | state=S schedstat=( 4316685794 1721568040 9042 ) utm=222 stm=209 core=1 HZ=100 | stack=0x7ff4c7b000-0x7ff4c7d000 stackSize=8192KB | held mutexes= native: #00 pc 00000000000d7a58 /apex/com.android.runtime/lib64/bionic/libc.so (__epoll_pwait+8) native: #01 pc 0000000000019acc /system/lib64/libutils.so (android::Looper::pollInner(int)+184) native: #02 pc 00000000000199ac /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112) native: #03 pc 0000000000118288 /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) at android.os.MessageQueue.nativePollOnce(Native method) at android.os.MessageQueue.next(MessageQueue.java:335) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:8059) at java.lang.reflect.Method.invoke(Native method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967) "Runtime worker thread 0" prio=10 tid=2 Native (still starting up) | group="" sCount=1 dsCount=0 flags=1 obj=0x0 self=0xb400006f78600000 | sysTid=27074 nice=-20 cgrp=default sched=0/0 handle=0x700ec6ad00 | state=S schedstat=( 220052 7604 4 ) utm=0 stm=0 core=6 HZ=100 | stack=0x700ec5c000-0x700ec5e000 stackSize=63KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 00000000005cce64 /apex/com.android.art/lib64/libart.so (art::ThreadPool::GetTask(art::Thread*)+120) native: #03 pc 00000000005cc0c8 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Run()+80) native: #04 pc 00000000005cbbd8 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Callback(void*)+192) native: #05 pc 00000000000eb868 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) native: #06 pc 000000000008ba88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (no managed stack frames) "Runtime worker thread 2" prio=10 tid=3 Native (still starting up) | group="" sCount=1 dsCount=0 flags=1 obj=0x0 self=0xb40000700ea2f800 | sysTid=27076 nice=-20 cgrp=default sched=0/0 handle=0x700cdf6d00 | state=S schedstat=( 87239 32865 3 ) utm=0 stm=0 core=6 HZ=100 | stack=0x700cde8000-0x700cdea000 stackSize=63KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 00000000005cce64 /apex/com.android.art/lib64/libart.so (art::ThreadPool::GetTask(art::Thread*)+120) native: #03 pc 00000000005cc0c8 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Run()+80) native: #04 pc 00000000005cbbd8 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Callback(void*)+192) native: #05 pc 00000000000eb868 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) native: #06 pc 000000000008ba88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (no managed stack frames) "Runtime worker thread 1" prio=10 tid=4 Native (still starting up) | group="" sCount=1 dsCount=0 flags=1 obj=0x0 self=0xb400006f78611800 | sysTid=27075 nice=-20 cgrp=default sched=0/0 handle=0x700ce46d00 | state=S schedstat=( 76147 137395 4 ) utm=0 stm=0 core=6 HZ=100 | stack=0x700ce38000-0x700ce3a000 stackSize=63KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 00000000005cce64 /apex/com.android.art/lib64/libart.so (art::ThreadPool::GetTask(art::Thread*)+120) native: #03 pc 00000000005cc0c8 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Run()+80) native: #04 pc 00000000005cbbd8 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Callback(void*)+192) native: #05 pc 00000000000eb868 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) native: #06 pc 000000000008ba88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (no managed stack frames) "Runtime worker thread 3" prio=10 tid=5 Native (still starting up) | group="" sCount=1 dsCount=0 flags=1 obj=0x0 self=0xb400006f6bbd2c00 | sysTid=27077 nice=-20 cgrp=default sched=0/0 handle=0x6f88965d00 | state=S schedstat=( 49948 69739 2 ) utm=0 stm=0 core=6 HZ=100 | stack=0x6f88957000-0x6f88959000 stackSize=63KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 00000000005cce64 /apex/com.android.art/lib64/libart.so (art::ThreadPool::GetTask(art::Thread*)+120) native: #03 pc 00000000005cc0c8 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Run()+80) native: #04 pc 00000000005cbbd8 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Callback(void*)+192) native: #05 pc 00000000000eb868 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) native: #06 pc 000000000008ba88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (no managed stack frames) "Jit thread pool worker thread 0" daemon prio=5 tid=7 Native | group="system" sCount=1 dsCount=0 flags=1 obj=0x12c40270 self=0xb400006f6bbf5c00 | sysTid=27079 nice=0 cgrp=default sched=0/0 handle=0x6f79871d00 | state=S schedstat=( 62065363 11169270 36 ) utm=5 stm=0 core=2 HZ=100 | stack=0x6f79773000-0x6f79775000 stackSize=1023KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 00000000005cce64 /apex/com.android.art/lib64/libart.so (art::ThreadPool::GetTask(art::Thread*)+120) native: #03 pc 00000000005cc108 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Run()+144) native: #04 pc 00000000005cbbd8 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Callback(void*)+192) native: #05 pc 00000000000eb868 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) native: #06 pc 000000000008ba88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (no managed stack frames) "HeapTaskDaemon" daemon prio=5 tid=8 WaitingForGcToComplete | group="system" sCount=1 dsCount=0 flags=1 obj=0x12c402e8 self=0xb400006f6bbe4400 | sysTid=27080 nice=4 cgrp=default sched=0/0 handle=0x6f7976ccc0 | state=S schedstat=( 1129937649897 21627716205 99260 ) utm=103605 stm=9388 core=0 HZ=100 | stack=0x6f79669000-0x6f7966b000 stackSize=1043KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 000000000028f01c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToCompleteLocked(art::gc::GcCause, art::Thread*)+144) native: #03 pc 00000000002a725c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToComplete(art::gc::GcCause, art::Thread*)+440) native: #04 pc 00000000002a9074 /apex/com.android.art/lib64/libart.so (art::gc::Heap::ConcurrentGC(art::Thread*, art::gc::GcCause, bool)+68) native: #05 pc 00000000002aeb60 /apex/com.android.art/lib64/libart.so (art::gc::Heap::ConcurrentGCTask::Run(art::Thread*)+36) native: #06 pc 00000000002e78a8 /apex/com.android.art/lib64/libart.so (art::gc::TaskProcessor::RunAllTasks(art::Thread*)+64) at dalvik.system.VMRuntime.runHeapTasks(Native method) at java.lang.Daemons$HeapTaskDaemon.runInternal(Daemons.java:532) at java.lang.Daemons$Daemon.run(Daemons.java:140) at java.lang.Thread.run(Thread.java:923) "ReferenceQueueDaemon" daemon prio=5 tid=9 Waiting | group="system" sCount=1 dsCount=0 flags=1 obj=0x12c40360 self=0xb400006f6bbe6000 | sysTid=27081 nice=4 cgrp=default sched=0/0 handle=0x6f79662cc0 | state=S schedstat=( 950002953 409741723 8979 ) utm=36 stm=58 core=0 HZ=100 | stack=0x6f7955f000-0x6f79561000 stackSize=1043KB | held mutexes= at java.lang.Object.wait(Native method) - waiting on <0x03778e03> (a java.lang.Class<java.lang.ref.ReferenceQueue>) at java.lang.Object.wait(Object.java:442) at java.lang.Object.wait(Object.java:568) at java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:218) - locked <0x03778e03> (a java.lang.Class<java.lang.ref.ReferenceQueue>) at java.lang.Daemons$Daemon.run(Daemons.java:140) at java.lang.Thread.run(Thread.java:923) "FinalizerDaemon" daemon prio=5 tid=10 Waiting | group="system" sCount=1 dsCount=0 flags=1 obj=0x12c403d8 self=0xb400006f6bbe7c00 | sysTid=27082 nice=4 cgrp=default sched=0/0 handle=0x6f79558cc0 | state=S schedstat=( 4083230504 452801530 9278 ) utm=353 stm=54 core=4 HZ=100 | stack=0x6f79455000-0x6f79457000 stackSize=1043KB | held mutexes= at java.lang.Object.wait(Native method) - waiting on <0x007e9180> (a java.lang.Object) at java.lang.Object.wait(Object.java:442) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:190) - locked <0x007e9180> (a java.lang.Object) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:211) at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:274) at java.lang.Daemons$Daemon.run(Daemons.java:140) at java.lang.Thread.run(Thread.java:923) "FinalizerWatchdogDaemon" daemon prio=5 tid=11 Sleeping | group="system" sCount=1 dsCount=0 flags=1 obj=0x12c404a0 self=0xb400006f6bbe9800 | sysTid=27083 nice=4 cgrp=default sched=0/0 handle=0x6f7944ecc0 | state=S schedstat=( 57866405 24556871 655 ) utm=4 stm=0 core=1 HZ=100 | stack=0x6f7934b000-0x6f7934d000 stackSize=1043KB | held mutexes= at java.lang.Thread.sleep(Native method) - sleeping on <0x0f3923b9> (a java.lang.Object) at java.lang.Thread.sleep(Thread.java:442) - locked <0x0f3923b9> (a java.lang.Object) at java.lang.Thread.sleep(Thread.java:358) at java.lang.Daemons$FinalizerWatchdogDaemon.sleepForNanos(Daemons.java:391) at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:420) at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:326) at java.lang.Daemons$Daemon.run(Daemons.java:140) at java.lang.Thread.run(Thread.java:923) "Binder:27068_1" prio=5 tid=12 WaitingForCheckPointsToRun | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c40520 self=0xb400006f78653800 | sysTid=27084 nice=0 cgrp=default sched=0/0 handle=0x6f79246cc0 | state=S schedstat=( 1843666204 549965140 1728 ) utm=167 stm=17 core=5 HZ=100 | stack=0x6f7914f000-0x6f79151000 stackSize=995KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 00000000001abe58 /apex/com.android.art/lib64/libart.so (void art::Barrier::Increment<(art::Barrier::LockHandling)1>(art::Thread*, int)+80) native: #03 pc 000000000025ae44 /apex/com.android.art/lib64/libart.so (art::gc::collector::ConcurrentCopying::CaptureThreadRootsForMarking()+876) native: #04 pc 0000000000255134 /apex/com.android.art/lib64/libart.so (art::gc::collector::ConcurrentCopying::MarkingPhase()+1196) native: #05 pc 0000000000254320 /apex/com.android.art/lib64/libart.so (art::gc::collector::ConcurrentCopying::RunPhases()+240) native: #06 pc 0000000000278bc0 /apex/com.android.art/lib64/libart.so (art::gc::collector::GarbageCollector::Run(art::gc::GcCause, bool)+300) native: #07 pc 00000000002959d4 /apex/com.android.art/lib64/libart.so (art::gc::Heap::CollectGarbageInternal(art::gc::collector::GcType, art::gc::GcCause, bool)+4144) native: #08 pc 0000000000299fdc /apex/com.android.art/lib64/libart.so (art::gc::Heap::AllocateInternalWithGc(art::Thread*, art::gc::AllocatorType, bool, unsigned long, unsigned long*, unsigned long*, unsigned long*, art::ObjPtr<art::mirror::Class>*)+2484) native: #09 pc 000000000065a37c /apex/com.android.art/lib64/libart.so (artAllocObjectFromCodeInitializedRegionTLAB+396) native: #10 pc 000000000013bb78 /apex/com.android.art/lib64/libart.so (art_quick_alloc_object_initialized_region_tlab+104) at android.os.ThreadLocalWorkSource.setUid(ThreadLocalWorkSource.java:68) at android.os.Binder.execTransact(Binder.java:1124) "Binder:27068_2" prio=5 tid=13 Native | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c405b8 self=0xb400006f6bc0c400 | sysTid=27085 nice=0 cgrp=default sched=0/0 handle=0x6f79148cc0 | state=S schedstat=( 2137657 4381250 13 ) utm=0 stm=0 core=5 HZ=100 | stack=0x6f79051000-0x6f79053000 stackSize=995KB | held mutexes= native: #00 pc 00000000000d6a94 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4) native: #01 pc 00000000000935c4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156) native: #02 pc 0000000000051a7c /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+296) native: #03 pc 0000000000051c6c /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24) native: #04 pc 0000000000052528 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60) native: #05 pc 0000000000078630 /system/lib64/libbinder.so (android::PoolThread::threadLoop()+24) native: #06 pc 00000000000154cc /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+260) native: #07 pc 00000000000a5694 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+144) native: #08 pc 0000000000014d90 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+412) native: #09 pc 00000000000eb868 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) native: #10 pc 000000000008ba88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (no managed stack frames) "Binder:27068_3" prio=5 tid=14 Native | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c40630 self=0xb400006f7866a000 | sysTid=27086 nice=0 cgrp=default sched=0/0 handle=0x6f7904acc0 | state=S schedstat=( 1382571254 1513631999 4854 ) utm=87 stm=51 core=1 HZ=100 | stack=0x6f78f53000-0x6f78f55000 stackSize=995KB | held mutexes= native: #00 pc 00000000000d6a94 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4) native: #01 pc 00000000000935c4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156) native: #02 pc 0000000000051a7c /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+296) native: #03 pc 0000000000051c6c /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24) native: #04 pc 0000000000052528 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60) native: #05 pc 0000000000078630 /system/lib64/libbinder.so (android::PoolThread::threadLoop()+24) native: #06 pc 00000000000154cc /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+260) native: #07 pc 00000000000a5694 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+144) native: #08 pc 0000000000014d90 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+412) native: #09 pc 00000000000eb868 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) native: #10 pc 000000000008ba88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (no managed stack frames) "HwBinder:27068_1" prio=5 tid=15 Native | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c406a8 self=0xb400006f6bbeb400 | sysTid=27088 nice=0 cgrp=default sched=0/0 handle=0x6f73efdcc0 | state=S schedstat=( 198333 1771 2 ) utm=0 stm=0 core=7 HZ=100 | stack=0x6f73e06000-0x6f73e08000 stackSize=995KB | held mutexes= native: #00 pc 00000000000d6a94 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4) native: #01 pc 00000000000935c4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156) native: #02 pc 0000000000086570 /system/lib64/libhidlbase.so (android::hardware::IPCThreadState::getAndExecuteCommand()+172) native: #03 pc 0000000000087b40 /system/lib64/libhidlbase.so (android::hardware::IPCThreadState::joinThreadPool(bool)+96) native: #04 pc 0000000000096d64 /system/lib64/libhidlbase.so (android::hardware::PoolThread::threadLoop()+24) native: #05 pc 00000000000154cc /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+260) native: #06 pc 00000000000a5694 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+144) native: #07 pc 0000000000014d90 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+412) native: #08 pc 00000000000eb868 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) native: #09 pc 000000000008ba88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (no managed stack frames) "WifiManagerThread" prio=5 tid=16 Native | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c40720 self=0xb400006f6bbed000 | sysTid=27089 nice=0 cgrp=default sched=0/0 handle=0x6f73dffcc0 | state=S schedstat=( 178230 0 1 ) utm=0 stm=0 core=6 HZ=100 | stack=0x6f73cfc000-0x6f73cfe000 stackSize=1043KB | held mutexes= native: #00 pc 00000000000d7a58 /apex/com.android.runtime/lib64/bionic/libc.so (__epoll_pwait+8) native: #01 pc 0000000000019acc /system/lib64/libutils.so (android::Looper::pollInner(int)+184) native: #02 pc 00000000000199ac /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112) native: #03 pc 0000000000118288 /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) at android.os.MessageQueue.nativePollOnce(Native method) at android.os.MessageQueue.next(MessageQueue.java:335) at android.os.Looper.loop(Looper.java:193) at android.os.HandlerThread.run(HandlerThread.java:67) "Binder:27068_4" prio=5 tid=17 Native | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c40808 self=0xb400006f6bd35800 | sysTid=27090 nice=0 cgrp=default sched=0/0 handle=0x6f73cf5cc0 | state=S schedstat=( 29694731 38369428 120 ) utm=1 stm=1 core=2 HZ=100 | stack=0x6f73bfe000-0x6f73c00000 stackSize=995KB | held mutexes= native: #00 pc 00000000000d6a94 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4) native: #01 pc 00000000000935c4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156) native: #02 pc 0000000000051a7c /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+296) native: #03 pc 0000000000051c6c /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24) native: #04 pc 0000000000052528 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60) native: #05 pc 0000000000078630 /system/lib64/libbinder.so (android::PoolThread::threadLoop()+24) native: #06 pc 00000000000154cc /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+260) native: #07 pc 00000000000a5694 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+144) native: #08 pc 0000000000014d90 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+412) native: #09 pc 00000000000eb868 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) native: #10 pc 000000000008ba88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (no managed stack frames) "pool-2-thread-1" prio=5 tid=18 Waiting | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c40b20 self=0xb400006f6bbeec00 | sysTid=27091 nice=0 cgrp=default sched=0/0 handle=0x6f1d7d4cc0 | state=S schedstat=( 1886353 692657 4 ) utm=0 stm=0 core=6 HZ=100 | stack=0x6f1d6d1000-0x6f1d6d3000 stackSize=1043KB | held mutexes= at sun.misc.Unsafe.park(Native method) - waiting on an unknown object at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923) "pool-3-thread-1" prio=5 tid=22 WaitingForGcToComplete | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c40c90 self=0xb400006f6bdc2c00 | sysTid=27114 nice=0 cgrp=default sched=0/0 handle=0x6f1938ccc0 | state=S schedstat=( 204513501403 2427662953 22019 ) utm=17722 stm=2729 core=2 HZ=100 | stack=0x6f19289000-0x6f1928b000 stackSize=1043KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 000000000028f01c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToCompleteLocked(art::gc::GcCause, art::Thread*)+144) native: #03 pc 00000000002a725c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToComplete(art::gc::GcCause, art::Thread*)+440) native: #04 pc 00000000002996c8 /apex/com.android.art/lib64/libart.so (art::gc::Heap::AllocateInternalWithGc(art::Thread*, art::gc::AllocatorType, bool, unsigned long, unsigned long*, unsigned long*, unsigned long*, art::ObjPtr<art::mirror::Class>*)+160) native: #05 pc 00000000004c11a8 /apex/com.android.art/lib64/libart.so (art::mirror::Object* art::gc::Heap::AllocObjectWithAllocator<true, true, art::mirror::SetStringCountAndValueVisitorFromString>(art::Thread*, art::ObjPtr<art::mirror::Class>, unsigned long, art::gc::AllocatorType, art::mirror::SetStringCountAndValueVisitorFromString const&)+1872) native: #06 pc 00000000004c0618 /apex/com.android.art/lib64/libart.so (art::String_fastSubstring(_JNIEnv*, _jobject*, int, int)+396) at java.lang.String.fastSubstring(Native method) at java.lang.String.substring(String.java:2069) at org.json.JSONTokener.nextString(JSONTokener.java:214) at org.json.JSONTokener.nextValue(JSONTokener.java:111) at org.json.JSONTokener.readObject(JSONTokener.java:371) at org.json.JSONTokener.nextValue(JSONTokener.java:104) at org.json.JSONTokener.readArray(JSONTokener.java:440) at org.json.JSONTokener.nextValue(JSONTokener.java:107) at org.json.JSONTokener.readObject(JSONTokener.java:394) at org.json.JSONTokener.nextValue(JSONTokener.java:104) at org.json.JSONObject.<init>(JSONObject.java:165) at org.json.JSONObject.<init>(JSONObject.java:182) at cn.richinfo.dm.business.a.a(:-1) at cn.richinfo.dm.service.f.run(:-1) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923) "pool-3-thread-2" prio=5 tid=19 Waiting | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c40e00 self=0xb400006f6bdc4800 | sysTid=27116 nice=0 cgrp=default sched=0/0 handle=0x6f1c6cacc0 | state=S schedstat=( 204866699204 2309068900 20936 ) utm=17673 stm=2813 core=1 HZ=100 | stack=0x6f1c5c7000-0x6f1c5c9000 stackSize=1043KB | held mutexes= at sun.misc.Unsafe.park(Native method) - waiting on an unknown object at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923) "pool-3-thread-4" prio=5 tid=20 WaitingForGcToComplete | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c40ec8 self=0xb400006f6bdc8000 | sysTid=27118 nice=0 cgrp=default sched=0/0 handle=0x6f1b496cc0 | state=S schedstat=( 204828084909 2819158662 21878 ) utm=17777 stm=2705 core=2 HZ=100 | stack=0x6f1b393000-0x6f1b395000 stackSize=1043KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 000000000028f01c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToCompleteLocked(art::gc::GcCause, art::Thread*)+144) native: #03 pc 00000000002a725c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToComplete(art::gc::GcCause, art::Thread*)+440) native: #04 pc 00000000002996c8 /apex/com.android.art/lib64/libart.so (art::gc::Heap::AllocateInternalWithGc(art::Thread*, art::gc::AllocatorType, bool, unsigned long, unsigned long*, unsigned long*, unsigned long*, art::ObjPtr<art::mirror::Class>*)+160) native: #05 pc 00000000004c11a8 /apex/com.android.art/lib64/libart.so (art::mirror::Object* art::gc::Heap::AllocObjectWithAllocator<true, true, art::mirror::SetStringCountAndValueVisitorFromString>(art::Thread*, art::ObjPtr<art::mirror::Class>, unsigned long, art::gc::AllocatorType, art::mirror::SetStringCountAndValueVisitorFromString const&)+1872) native: #06 pc 00000000004c0618 /apex/com.android.art/lib64/libart.so (art::String_fastSubstring(_JNIEnv*, _jobject*, int, int)+396) at java.lang.String.fastSubstring(Native method) at java.lang.String.substring(String.java:2069) at org.json.JSONTokener.nextString(JSONTokener.java:214) at org.json.JSONTokener.nextValue(JSONTokener.java:111) at org.json.JSONTokener.readObject(JSONTokener.java:394) at org.json.JSONTokener.nextValue(JSONTokener.java:104) at org.json.JSONTokener.readArray(JSONTokener.java:440) at org.json.JSONTokener.nextValue(JSONTokener.java:107) at org.json.JSONTokener.readObject(JSONTokener.java:394) at org.json.JSONTokener.nextValue(JSONTokener.java:104) at org.json.JSONObject.<init>(JSONObject.java:165) at org.json.JSONObject.<init>(JSONObject.java:182) at cn.richinfo.dm.business.a.a(:-1) at cn.richinfo.dm.service.f.run(:-1) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923) "pool-3-thread-3" prio=5 tid=21 Waiting | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c413d8 self=0xb400006f6bdc6400 | sysTid=27117 nice=0 cgrp=default sched=0/0 handle=0x6f1b5a0cc0 | state=S schedstat=( 201102023433 2507016647 21137 ) utm=17463 stm=2647 core=5 HZ=100 | stack=0x6f1b49d000-0x6f1b49f000 stackSize=1043KB | held mutexes= at sun.misc.Unsafe.park(Native method) - waiting on an unknown object at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923) "pool-3-thread-6" prio=5 tid=24 WaitingForGcToComplete | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c414a0 self=0xb400006f6bdd0c00 | sysTid=27226 nice=0 cgrp=default sched=0/0 handle=0x6f1606ecc0 | state=S schedstat=( 207521618734 4234405161 21755 ) utm=17983 stm=2768 core=1 HZ=100 | stack=0x6f15f6b000-0x6f15f6d000 stackSize=1043KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 000000000028f01c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToCompleteLocked(art::gc::GcCause, art::Thread*)+144) native: #03 pc 00000000002a725c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToComplete(art::gc::GcCause, art::Thread*)+440) native: #04 pc 00000000002996c8 /apex/com.android.art/lib64/libart.so (art::gc::Heap::AllocateInternalWithGc(art::Thread*, art::gc::AllocatorType, bool, unsigned long, unsigned long*, unsigned long*, unsigned long*, art::ObjPtr<art::mirror::Class>*)+160) native: #05 pc 000000000065a37c /apex/com.android.art/lib64/libart.so (artAllocObjectFromCodeInitializedRegionTLAB+396) native: #06 pc 000000000013bb78 /apex/com.android.art/lib64/libart.so (art_quick_alloc_object_initialized_region_tlab+104) at java.util.LinkedHashMap.entrySet(LinkedHashMap.java:670) at org.json.JSONObject.writeTo(JSONObject.java:733) at org.json.JSONStringer.value(JSONStringer.java:246) at org.json.JSONArray.writeTo(JSONArray.java:616) at org.json.JSONStringer.value(JSONStringer.java:242) at org.json.JSONObject.writeTo(JSONObject.java:734) at org.json.JSONObject.toString(JSONObject.java:702) at cn.richinfo.dm.business.a.a(:-1) at cn.richinfo.dm.service.f.run(:-1) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923) "pool-3-thread-7" prio=5 tid=25 WaitingForGcToComplete | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c41670 self=0xb400006f6bdc1000 | sysTid=27250 nice=0 cgrp=default sched=0/0 handle=0x6f16178cc0 | state=S schedstat=( 212465331917 4054930191 23028 ) utm=18456 stm=2790 core=0 HZ=100 | stack=0x6f16075000-0x6f16077000 stackSize=1043KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 000000000028f01c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToCompleteLocked(art::gc::GcCause, art::Thread*)+144) native: #03 pc 00000000002a725c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToComplete(art::gc::GcCause, art::Thread*)+440) native: #04 pc 00000000002996c8 /apex/com.android.art/lib64/libart.so (art::gc::Heap::AllocateInternalWithGc(art::Thread*, art::gc::AllocatorType, bool, unsigned long, unsigned long*, unsigned long*, unsigned long*, art::ObjPtr<art::mirror::Class>*)+160) native: #05 pc 000000000065a37c /apex/com.android.art/lib64/libart.so (artAllocObjectFromCodeInitializedRegionTLAB+396) native: #06 pc 000000000013bb78 /apex/com.android.art/lib64/libart.so (art_quick_alloc_object_initialized_region_tlab+104) at java.util.LinkedHashMap.newNode(LinkedHashMap.java:280) at java.util.HashMap.putVal(HashMap.java:630) at java.util.HashMap.put(HashMap.java:611) at org.json.JSONObject.put(JSONObject.java:273) at org.json.JSONTokener.readObject(JSONTokener.java:394) at org.json.JSONTokener.nextValue(JSONTokener.java:104) at org.json.JSONTokener.readArray(JSONTokener.java:440) at org.json.JSONTokener.nextValue(JSONTokener.java:107) at org.json.JSONTokener.readObject(JSONTokener.java:394) at org.json.JSONTokener.nextValue(JSONTokener.java:104) at org.json.JSONObject.<init>(JSONObject.java:165) at org.json.JSONObject.<init>(JSONObject.java:182) at cn.richinfo.dm.business.a.a(:-1) at cn.richinfo.dm.service.f.run(:-1) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923) "pool-3-thread-8" prio=5 tid=26 Waiting | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c418c0 self=0xb400006f6bdcf000 | sysTid=27283 nice=0 cgrp=default sched=0/0 handle=0x6f14f64cc0 | state=S schedstat=( 207027702908 1982910208 20993 ) utm=17948 stm=2753 core=1 HZ=100 | stack=0x6f14e61000-0x6f14e63000 stackSize=1043KB | held mutexes= at sun.misc.Unsafe.park(Native method) - waiting on an unknown object at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923) "queued-work-looper" prio=5 tid=27 Native | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c41988 self=0xb400006f6bbf2400 | sysTid=27363 nice=-2 cgrp=default sched=0/0 handle=0x6f13e5acc0 | state=S schedstat=( 401559066 2764794 165 ) utm=31 stm=8 core=6 HZ=100 | stack=0x6f13d57000-0x6f13d59000 stackSize=1043KB | held mutexes= native: #00 pc 00000000000d7a58 /apex/com.android.runtime/lib64/bionic/libc.so (__epoll_pwait+8) native: #01 pc 0000000000019acc /system/lib64/libutils.so (android::Looper::pollInner(int)+184) native: #02 pc 00000000000199ac /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112) native: #03 pc 0000000000118288 /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) at android.os.MessageQueue.nativePollOnce(Native method) at android.os.MessageQueue.next(MessageQueue.java:335) at android.os.Looper.loop(Looper.java:193) at android.os.HandlerThread.run(HandlerThread.java:67) "pool-3-thread-9" prio=5 tid=28 Waiting | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c41a70 self=0xb400006f6bbf4000 | sysTid=15971 nice=0 cgrp=default sched=0/0 handle=0x6f8289ecc0 | state=S schedstat=( 254896 20625 1 ) utm=0 stm=0 core=1 HZ=100 | stack=0x6f8279b000-0x6f8279d000 stackSize=1043KB | held mutexes= at sun.misc.Unsafe.park(Native method) - waiting on an unknown object at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923) "Binder:27068_5" prio=5 tid=23 Native | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c41b38 self=0xb400006f6bdc9c00 | sysTid=15972 nice=0 cgrp=default sched=0/0 handle=0x6f8276bcc0 | state=S schedstat=( 8655105 16940732 42 ) utm=0 stm=0 core=1 HZ=100 | stack=0x6f82674000-0x6f82676000 stackSize=995KB | held mutexes= native: #00 pc 00000000000d6a94 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4) native: #01 pc 00000000000935c4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156) native: #02 pc 0000000000051a7c /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+296) native: #03 pc 0000000000051c6c /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24) native: #04 pc 0000000000052528 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60) native: #05 pc 0000000000078630 /system/lib64/libbinder.so (android::PoolThread::threadLoop()+24) native: #06 pc 00000000000154cc /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+260) native: #07 pc 00000000000a5694 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+144) native: #08 pc 0000000000014d90 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+412) native: #09 pc 00000000000eb868 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) native: #10 pc 000000000008ba88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (no managed stack frames) "Thread-1963" prio=5 tid=30 WaitingForGcToComplete | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c41bb0 self=0xb400006f6bd49c00 | sysTid=16014 nice=0 cgrp=default sched=0/0 handle=0x6f8254bcc0 | state=S schedstat=( 2833698743 19182968 143 ) utm=277 stm=5 core=1 HZ=100 | stack=0x6f82448000-0x6f8244a000 stackSize=1043KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 000000000028f01c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToCompleteLocked(art::gc::GcCause, art::Thread*)+144) native: #03 pc 0000000000294d0c /apex/com.android.art/lib64/libart.so (art::gc::Heap::CollectGarbageInternal(art::gc::collector::GcType, art::gc::GcCause, bool)+872) native: #04 pc 000000000029a914 /apex/com.android.art/lib64/libart.so (art::gc::Heap::AllocateInternalWithGc(art::Thread*, art::gc::AllocatorType, bool, unsigned long, unsigned long*, unsigned long*, unsigned long*, art::ObjPtr<art::mirror::Class>*)+4844) native: #05 pc 000000000065a860 /apex/com.android.art/lib64/libart.so (artAllocArrayFromCodeResolvedRegionTLAB+560) native: #06 pc 000000000013c084 /apex/com.android.art/lib64/libart.so (art_quick_alloc_array_resolved16_region_tlab+132) at java.util.Arrays.copyOf(Arrays.java:3257) at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448) at java.lang.StringBuilder.append(StringBuilder.java:137) at cn.richinfo.dm.receiver.DMBroadCastReceiver.b(:-1) at cn.richinfo.dm.receiver.DMBroadCastReceiver.a(:-1) at cn.richinfo.dm.receiver.a.run(:-1) at java.lang.Thread.run(Thread.java:923) "Binder:27068_6" prio=5 tid=29 Native | group="main" sCount=1 dsCount=0 flags=1 obj=0x12e00120 self=0xb400006f6bd48000 | sysTid=16265 nice=0 cgrp=default sched=0/0 handle=0x6f82662cc0 | state=S schedstat=( 1432711 3536458 6 ) utm=0 stm=0 core=0 HZ=100 | stack=0x6f8256b000-0x6f8256d000 stackSize=995KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 00000000003c5fcc /apex/com.android.art/lib64/libart.so (art::JNI<false>::CallStaticObjectMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+500) native: #03 pc 00000000000f44d8 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticObjectMethod(_jclass*, _jmethodID*, ...)+124) native: #04 pc 00000000001280d8 /system/lib64/libandroid_runtime.so (android::javaObjectForIBinder(_JNIEnv*, android::sp<android::IBinder> const&)+348) native: #05 pc 000000000012ba28 /system/lib64/libandroid_runtime.so (JavaDeathRecipient::binderDied(android::wp<android::IBinder> const&)+140) native: #06 pc 000000000004b800 /system/lib64/libbinder.so (android::BpBinder::reportOneDeath(android::BpBinder::Obituary const&)+148) native: #07 pc 000000000004b720 /system/lib64/libbinder.so (android::BpBinder::sendObituary()+148) native: #08 pc 0000000000052048 /system/lib64/libbinder.so (android::IPCThreadState::executeCommand(int)+680) native: #09 pc 0000000000051cf0 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+156) native: #10 pc 0000000000052528 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60) native: #11 pc 0000000000078630 /system/lib64/libbinder.so (android::PoolThread::threadLoop()+24) native: #12 pc 00000000000154cc /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+260) native: #13 pc 00000000000a5694 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+144) native: #14 pc 0000000000014d90 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+412) native: #15 pc 00000000000eb868 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) native: #16 pc 000000000008ba88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (no managed stack frames) "Binder:27068_7" prio=5 tid=32 WaitingForGcToComplete | group="main" sCount=1 dsCount=0 flags=1 obj=0x12e00198 self=0xb400006f7866bc00 | sysTid=16267 nice=0 cgrp=default sched=0/0 handle=0x6f8232ecc0 | state=S schedstat=( 1138386 6174220 8 ) utm=0 stm=0 core=1 HZ=100 | stack=0x6f82237000-0x6f82239000 stackSize=995KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 000000000028f01c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToCompleteLocked(art::gc::GcCause, art::Thread*)+144) native: #03 pc 00000000002a725c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToComplete(art::gc::GcCause, art::Thread*)+440) native: #04 pc 00000000002996c8 /apex/com.android.art/lib64/libart.so (art::gc::Heap::AllocateInternalWithGc(art::Thread*, art::gc::AllocatorType, bool, unsigned long, unsigned long*, unsigned long*, unsigned long*, art::ObjPtr<art::mirror::Class>*)+160) native: #05 pc 000000000065a37c /apex/com.android.art/lib64/libart.so (artAllocObjectFromCodeInitializedRegionTLAB+396) native: #06 pc 000000000013bb78 /apex/com.android.art/lib64/libart.so (art_quick_alloc_object_initialized_region_tlab+104) at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:80) at android.content.pm.ParceledListSlice$1.createFromParcel(ParceledListSlice.java:78) at android.app.IApplicationThread$Stub.onTransact(IApplicationThread.java:661) at android.os.Binder.execTransactInternal(Binder.java:1162) at android.os.Binder.execTransact(Binder.java:1126) "Thread-1966" prio=5 tid=31 WaitingForGcToComplete | group="main" sCount=1 dsCount=0 flags=1 obj=0x12e00210 self=0xb400006f6bd4b800 | sysTid=16269 nice=0 cgrp=default sched=0/0 handle=0x6f82225cc0 | state=S schedstat=( 697344 2097656 6 ) utm=0 stm=0 core=1 HZ=100 | stack=0x6f82122000-0x6f82124000 stackSize=1043KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 000000000028f01c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToCompleteLocked(art::gc::GcCause, art::Thread*)+144) native: #03 pc 00000000002a725c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToComplete(art::gc::GcCause, art::Thread*)+440) native: #04 pc 00000000002996c8 /apex/com.android.art/lib64/libart.so (art::gc::Heap::AllocateInternalWithGc(art::Thread*, art::gc::AllocatorType, bool, unsigned long, unsigned long*, unsigned long*, unsigned long*, art::ObjPtr<art::mirror::Class>*)+160) native: #05 pc 000000000065a37c /apex/com.android.art/lib64/libart.so (artAllocObjectFromCodeInitializedRegionTLAB+396) native: #06 pc 000000000013bb78 /apex/com.android.art/lib64/libart.so (art_quick_alloc_object_initialized_region_tlab+104) at android.content.ComponentName$1.createFromParcel(ComponentName.java:390) at android.content.ComponentName$1.createFromParcel(ComponentName.java:388) at android.app.IActivityManager$Stub$Proxy.startService(IActivityManager.java:6064) at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1710) at android.app.ContextImpl.startService(ContextImpl.java:1680) at android.content.ContextWrapper.startService(ContextWrapper.java:731) at android.content.ContextWrapper.startService(ContextWrapper.java:731) at cn.richinfo.dm.receiver.DMBroadCastReceiver.b(:-1) at cn.richinfo.dm.receiver.DMBroadCastReceiver.a(:-1) at cn.richinfo.dm.receiver.a.run(:-1) at java.lang.Thread.run(Thread.java:923) "Thread-1965" prio=5 tid=33 WaitingForGcToComplete | group="main" sCount=1 dsCount=0 flags=1 obj=0x12e003a8 self=0xb400006f6bd4d400 | sysTid=16268 nice=0 cgrp=default sched=0/0 handle=0x6f82438cc0 | state=S schedstat=( 898177 6904949 5 ) utm=0 stm=0 core=5 HZ=100 | stack=0x6f82335000-0x6f82337000 stackSize=1043KB | held mutexes= native: #00 pc 0000000000086b4c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) native: #01 pc 00000000001b0418 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) native: #02 pc 000000000028f01c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToCompleteLocked(art::gc::GcCause, art::Thread*)+144) native: #03 pc 00000000002a725c /apex/com.android.art/lib64/libart.so (art::gc::Heap::WaitForGcToComplete(art::gc::GcCause, art::Thread*)+440) native: #04 pc 00000000002996c8 /apex/com.android.art/lib64/libart.so (art::gc::Heap::AllocateInternalWithGc(art::Thread*, art::gc::AllocatorType, bool, unsigned long, unsigned long*, unsigned long*, unsigned long*, art::ObjPtr<art::mirror::Class>*)+160) native: #05 pc 000000000065a37c /apex/com.android.art/lib64/libart.so (artAllocObjectFromCodeInitializedRegionTLAB+396) native: #06 pc 000000000013bb78 /apex/com.android.art/lib64/libart.so (art_quick_alloc_object_initialized_region_tlab+104) at android.content.ComponentName$1.createFromParcel(ComponentName.java:390) at android.content.ComponentName$1.createFromParcel(ComponentName.java:388) at android.app.IActivityManager$Stub$Proxy.startService(IActivityManager.java:6064) at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1710) at android.app.ContextImpl.startService(ContextImpl.java:1680) at android.content.ContextWrapper.startService(ContextWrapper.java:731) at android.content.ContextWrapper.startService(ContextWrapper.java:731) at cn.richinfo.dm.receiver.DMBroadCastReceiver.b(:-1) at cn.richinfo.dm.receiver.DMBroadCastReceiver.a(:-1) at cn.richinfo.dm.receiver.a.run(:-1) at java.lang.Thread.run(Thread.java:923) ----- end 27068 ----- ----- Waiting Channels: pid 27068 at 2025-09-01 08:35:45 ----- Cmd line: com.miui.dmregservice sysTid=27068 do_epoll_wait sysTid=27074 futex_wait_queue_me sysTid=27075 futex_wait_queue_me sysTid=27076 futex_wait_queue_me sysTid=27077 futex_wait_queue_me sysTid=27078 do_sigtimedwait sysTid=27079 futex_wait_queue_me sysTid=27080 futex_wait_queue_me sysTid=27081 futex_wait_queue_me sysTid=27082 0 sysTid=27083 futex_wait_queue_me sysTid=27084 futex_wait_queue_me sysTid=27085 binder_ioctl sysTid=27086 binder_ioctl sysTid=27088 binder_ioctl sysTid=27089 do_epoll_wait sysTid=27090 futex_wait_queue_me sysTid=27091 futex_wait_queue_me sysTid=27114 futex_wait_queue_me sysTid=27116 futex_wait_queue_me sysTid=27117 futex_wait_queue_me sysTid=27118 futex_wait_queue_me sysTid=27226 futex_wait_queue_me sysTid=27250 futex_wait_queue_me sysTid=27283 futex_wait_queue_me sysTid=27363 do_epoll_wait sysTid=15971 futex_wait_queue_me sysTid=15972 binder_ioctl sysTid=16013 futex_wait_queue_me sysTid=16014 futex_wait_queue_me ----- end 27068 -----
最新发布
09-06
在 GlassFish 应用服务器中,ManagedResource 和 ManagedObject 都是管理资源的机制。下面我将以 JDBC 连接池为例,来举例说明 ManagedResource 和 ManagedObject 的使用。 在 GlassFish 中,JDBC 连接池是一种资源,可以通过 ManagedResource 和 ManagedObject 来进行管理。在这个例子中,JDBC 连接池是 ManagedResource,而数据源是 ManagedObject。 具体来说,一个 JDBC 连接池可以有多个数据源,每个数据源都有一个名称、一个连接 URL、一个用户名、一个密码等属性。在 GlassFish 中,这些属性可以通过 ManagedObject 进行管理。 例如,我们可以通过以下命令在 GlassFish 中创建一个名为 myPool 的 JDBC 连接池: ``` asadmin create-jdbc-connection-pool --restype javax.sql.DataSource --datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlDataSource --property user=root:password=123456:url=jdbc:mysql://localhost:3306/test myPool ``` 在这个命令中,我们指定了连接池的资源类型、数据源类名、属性等信息。其中,--property 参数指定了数据源的属性,这些属性将作为 ManagedObject 进行管理。 一旦创建了 JDBC 连接池,我们就可以使用 JMX 来管理其中的数据源。例如,我们可以使用 JConsole 连接到 GlassFish 中的 MBean 服务器,然后找到 myPool 的 MBean,从而访问其中的 ManagedObject。 在 JConsole 中,我们可以找到 myPool 的 MBean,然后展开它,可以看到其中包含了多个 ManagedObject,每个 ManagedObject 都代表一个数据源。我们可以通过这些 ManagedObject 来查看和修改数据源的属性,例如修改用户名和密码等。 总之,ManagedResource 和 ManagedObject 是 GlassFish 中管理资源的两个不同层次,ManagedResource 是更高层次的资源管理机制,而 ManagedObjectManagedResource 的一部分,用于实现具体的属性管理。在 GlassFish 中,JDBC 连接池就是一个很好的例子,演示了 ManagedResource 和 ManagedObject 的使用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值