最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jvm-jstack常用的用法示例

 更新時間:2023年06月21日 09:53:39   作者:荊茗Scaler  
jstack 是一個常用的用于分析 Java 進(jìn)程的工具。它可以顯示 Java 進(jìn)程中所有線程狀態(tài)和堆棧信息,幫助定位 Java 進(jìn)程中的問題,這篇文章主要介紹了jvm-jstack常用的用法示例,需要的朋友可以參考下

jvm-jstack的各種用法

jstack 是一個常用的用于分析 Java 進(jìn)程的工具。它可以顯示 Java 進(jìn)程中所有線程狀態(tài)和堆棧信息,幫助定位 Java 進(jìn)程中的問題。以下是一些 jstack 常用的用法示例:

1.分析 Java 進(jìn)程線程信息

使用 jstack 工具分析正在運(yùn)行的 Java 應(yīng)用程序的線程信息。

jstack -F <pid> > <file>

1.獲取死鎖信息

使用 jstack 工具獲取 Java 進(jìn)程的死鎖信息。

jstack -F -l <pid> > <file>

1.分析線程的鎖狀態(tài)

使用 jstack 工具分析 Java 進(jìn)程線程的鎖狀態(tài)。

jstack -m <pid>

1.分析某個線程的堆棧信息

使用 jstack 工具分析 Java 進(jìn)程中某個線程的堆棧信息。

jstack -l <pid> | grep <thread_name>

1.遠(yuǎn)程獲取Java進(jìn)程線程信息

使用 jstack 工具遠(yuǎn)程獲取正在運(yùn)行的 Java 應(yīng)用程序的線程信息。

jstack -F <hostname>:<port> <pid> > <file>

1.其他用法

除了上述常見用法外,jstack 還可以使用 "-h" 或 "--help" 參數(shù)顯示幫助信息,并提供一些額外的參數(shù)來控制 jstack 工具的行為,例如:

  • "-Joption":傳遞 Java 虛擬機(jī)選項給 jstack
  • "-t":同時顯示線程狀態(tài)
  • "-l":顯示更多關(guān)于鎖的信息
  • "-e":打印線程池的信息
  • "-c":打印線程的 Java 堆棧,以及展開受重載的方法

上述示例中的 是進(jìn)程 ID, 是將輸出保存到的文件名, 和 是正在運(yùn)行 Java 進(jìn)程的機(jī)器地址和端口號, 是要獲取堆棧信息的線程名稱。

JVM之jstack的使用和解析

基本概念

有些時候我們需要查看下jvm中的線程執(zhí)行情況,比如,發(fā)現(xiàn)服務(wù)器的CPU的負(fù)載突然增高了、出現(xiàn)了死鎖、死循環(huán)等,我們該如何分析呢?
由于程序是正常運(yùn)行的,沒有任何的輸出,從日志方面也看不出什么問題,所以就需要看下jvm的內(nèi)部線程的執(zhí)行情況,然后再進(jìn)行分析查找出原因。
這個時候,就需要借助于jstack命令了,jstack的作用是將正在運(yùn)行的jvm的線程情況進(jìn)行快照,并且打印出來。
jstack是jdk自帶的線程堆棧分析工具,使用該命令可以查看或?qū)С?java 應(yīng)用程序中線程堆棧信息。
jstack用于生成java虛擬機(jī)當(dāng)前時刻的線程快照。線程快照是當(dāng)前java虛擬機(jī)內(nèi)每一條線程正在執(zhí)行的方法堆棧的集合,生成線程快照的主要目的是定位線程出現(xiàn)長時間停頓的原因,如線程間死鎖、死循環(huán)、請求外部資源導(dǎo)致的長時間等待等。 線程出現(xiàn)停頓的時候通過jstack來查看各個線程的調(diào)用堆棧,就可以知道沒有響應(yīng)的線程到底在后臺做什么事情,或者等待什么資源。 如果java程序崩潰生成core文件,jstack工具可以用來獲得core文件的java stack和native stack的信息,從而可以輕松地知道java程序是如何崩潰和在程序何處發(fā)生問題。另外,jstack工具還可以附屬到正在運(yùn)行的java程序中,看到當(dāng)時運(yùn)行的java程序的java stack和native stack的信息, 如果現(xiàn)在運(yùn)行的java程序呈現(xiàn)hung的狀態(tài),jstack是非常有用的。

image.png

用法:

jstack [ options ] pid

pid:Java進(jìn)程的ID,可以通過jps命令查詢到。

jstack [ options ] executable core

executable: 產(chǎn)生core dump的Java可執(zhí)行程序
core:要打印的堆棧跟蹤的核心文件

jstack [ options ] [ server-id@ ] remote-hostname-or-IP

server-id:當(dāng)多個DEBUG服務(wù)器在同一遠(yuǎn)程主機(jī)上運(yùn)行時,可使用的可選唯一ID。
remote-hostname-or-IP:遠(yuǎn)程DEBUG的服務(wù)器主機(jī)名或IP地址

options 參數(shù)說明

-F

當(dāng) jstack [-l] pid 沒有響應(yīng)時,強(qiáng)制打印一個堆棧轉(zhuǎn)儲。

-l

打印關(guān)于鎖的其他信息,比如擁有的java.util.concurrent ownable同步器的列表。

-m

打印包含Java和本機(jī)C/ C++幀的混合模式堆棧跟蹤。

-h

打印幫助信息

-help

打印幫助信息

[root@fsd bin]# jstack 2203
Full thread dump Java HotSpot(TM) 64‐Bit Server VM (25.141‐b15 mixed mode):
"Attach Listener" #24 daemon prio=9 os_prio=0 tid=0x00007fabb4001000 nid=0x906 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"http‐bio‐8080‐exec‐5" #23 daemon prio=5 os_prio=0 tid=0x00007fabb057c000 nid=0x8e1 waiting on condition [0x00007fabd05b8000]
java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)
‐ parking to wait for    <0x00000000f8508360> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awa it(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:44 2)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104) at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32) at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1 074)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java
:1134)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.jav a:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread
.java:61)
at java.lang.Thread.run(Thread.java:748)
"http‐bio‐8080‐exec‐4" #22 daemon prio=5 os_prio=0 tid=0x00007fab9c113800

nid=0x8e0 waiting on condition [0x00007fabd06b9000] java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
‐ parking to wait for    <0x00000000f8508360> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awa it(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:44 2)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104) at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32) at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1 074)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java
:1134)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.jav a:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread
.java:61)
at java.lang.Thread.run(Thread.java:748)

"http‐bio‐8080‐exec‐3" #21 daemon prio=5 os_prio=0 tid=0x0000000001aeb800 nid=0x8df waiting on condition [0x00007fabd09ba000]
java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)
‐ parking to wait for    <0x00000000f8508360> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awa it(AbstractQueuedSynchronizer.java:2039)
at

java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:44 2)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104) at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32) at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1 074)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java
:1134)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.jav a:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread
.java:61)
at java.lang.Thread.run(Thread.java:748)

"http‐bio‐8080‐exec‐2" #20 daemon prio=5 os_prio=0 tid=0x0000000001aea000 nid=0x8de waiting on condition [0x00007fabd0abb000]
java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)
‐ parking to wait for    <0x00000000f8508360> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awa it(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:44 2)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104) at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32) at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1 074)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java
:1134)

java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.jav a:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread
.java:61)
at java.lang.Thread.run(Thread.java:748)

"http‐bio‐8080‐exec‐1" #19 daemon prio=5 os_prio=0 tid=0x0000000001ae8800 nid=0x8dd waiting on condition [0x00007fabd0bbc000]
java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)
‐ parking to wait for    <0x00000000f8508360> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awa it(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:44 2)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104) at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32) at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1 074)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java
:1134)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.jav a:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread
.java:61)
at java.lang.Thread.run(Thread.java:748)

"ajp‐bio‐8009‐AsyncTimeout" #17 daemon prio=5 os_prio=0 tid=0x00007fabe8128000 nid=0x8d0 waiting on condition [0x00007fabd0ece000]
java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method)

at org.apache.tomcat.util.net.JIoEndpoint$AsyncTimeout.run(JIoEndpoint.java: 152)
at java.lang.Thread.run(Thread.java:748)

"ajp‐bio‐8009‐Acceptor‐0" #16 daemon prio=5 os_prio=0 tid=0x00007fabe82d4000 nid=0x8cf runnable [0x00007fabd0fcf000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method) at
java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409) at java.net.ServerSocket.implAccept(ServerSocket.java:545)
at java.net.ServerSocket.accept(ServerSocket.java:513) at
org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(Defaul tServerSocketFactory.java:60)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:220)
at java.lang.Thread.run(Thread.java:748)

"http‐bio‐8080‐AsyncTimeout" #15 daemon prio=5 os_prio=0 tid=0x00007fabe82d1800 nid=0x8ce waiting on condition [0x00007fabd10d0000]
java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method)
at org.apache.tomcat.util.net.JIoEndpoint$AsyncTimeout.run(JIoEndpoint.java: 152)
at java.lang.Thread.run(Thread.java:748)

"http‐bio‐8080‐Acceptor‐0" #14 daemon prio=5 os_prio=0 tid=0x00007fabe82d0000 nid=0x8cd runnable [0x00007fabd11d1000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method) at
java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409) at java.net.ServerSocket.implAccept(ServerSocket.java:545)
at java.net.ServerSocket.accept(ServerSocket.java:513)

at

org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(Defaul tServerSocketFactory.java:60)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:220)
at java.lang.Thread.run(Thread.java:748)

"ContainerBackgroundProcessor[StandardEngine[Catalina]]" #13 daemon prio=5 os_prio=0 tid=0x00007fabe82ce000 nid=0x8cc waiting on condition [0x00007fabd12d2000]
java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(C ontainerBase.java:1513)
at java.lang.Thread.run(Thread.java:748)

"GC Daemon" #10 daemon prio=2 os_prio=0 tid=0x00007fabe83b4000 nid=0x8b3 in Object.wait() [0x00007fabd1c2f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method)
‐ waiting on <0x00000000e315c2d0> (a sun.misc.GC$LatencyLock) at sun.misc.GC$Daemon.run(GC.java:117)
‐ locked <0x00000000e315c2d0> (a sun.misc.GC$LatencyLock)

"Service Thread" #7 daemon prio=9 os_prio=0 tid=0x00007fabe80c3800 nid=0x8a5 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C1 CompilerThread1" #6 daemon prio=9 os_prio=0 tid=0x00007fabe80b6800 nid=0x8a4 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 tid=0x00007fabe80b3800 nid=0x8a3 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007fabe80b2000 nid=0x8a2 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007fabe807f000 nid=0x8a1

in Object.wait() [0x00007fabd2a67000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)
‐ waiting on <0x00000000e3162918> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
‐ locked <0x00000000e3162918> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007fabe807a800 nid=0x8a0 in Object.wait() [0x00007fabd2b68000]
java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)
‐ waiting on <0x00000000e3162958> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
‐ locked <0x00000000e3162958> (a java.lang.ref.Reference$Lock)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)

"main" #1 prio=5 os_prio=0 tid=0x00007fabe8009000 nid=0x89c runnable [0x00007fabed210000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method) at
java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409) at java.net.ServerSocket.implAccept(ServerSocket.java:545)
at java.net.ServerSocket.accept(ServerSocket.java:513) at
org.apache.catalina.core.StandardServer.await(StandardServer.java:453) at org.apache.catalina.startup.Catalina.await(Catalina.java:777) at org.apache.catalina.startup.Catalina.start(Catalina.java:723) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java
:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI mpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)

到此這篇關(guān)于jvm-jstack的各種用法的文章就介紹到這了,更多相關(guān)jvm-jstack用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入了解Java中的過濾器Filter和監(jiān)聽器Listener

    深入了解Java中的過濾器Filter和監(jiān)聽器Listener

    這篇文章主要為大家詳細(xì)介紹了Java中的過濾器Filter和監(jiān)聽器Listener的使用以及二者的區(qū)別,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-06-06
  • idea中MavenWeb項目不能創(chuàng)建Servlet的解決方案

    idea中MavenWeb項目不能創(chuàng)建Servlet的解決方案

    這篇文章主要介紹了idea中MavenWeb項目不能創(chuàng)建Servlet的解決方案,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 利用Java自寫一個生成ID的工具類

    利用Java自寫一個生成ID的工具類

    平時項目中只要涉及表,那么一定能接觸到眾多各式各樣的ID編號。本文將通過Java語言實現(xiàn)手寫一個ID生成工具類,需要的小伙伴可以參考一下
    2022-11-11
  • Mybatis查不到數(shù)據(jù)查詢返回Null問題

    Mybatis查不到數(shù)據(jù)查詢返回Null問題

    mybatis突然查不到數(shù)據(jù),查詢返回的都是Null,但是 select count(*) from xxx查詢數(shù)量,返回卻是正常的。好多朋友遇到這樣的問題不知所措,下面小編通過本教程簡單給大家說明下
    2016-08-08
  • Spring?Boot實現(xiàn)分布式系統(tǒng)中的服務(wù)發(fā)現(xiàn)和注冊(最新推薦)

    Spring?Boot實現(xiàn)分布式系統(tǒng)中的服務(wù)發(fā)現(xiàn)和注冊(最新推薦)

    在本文中,我們深入探討了Spring?Boot如何實現(xiàn)分布式系統(tǒng)中的服務(wù)發(fā)現(xiàn)和注冊,我們使用Eureka作為服務(wù)注冊中心,Ribbon作為負(fù)載均衡器,Hystrix作為熔斷器,成功地實現(xiàn)了服務(wù)發(fā)現(xiàn)、服務(wù)注冊、負(fù)載均衡和服務(wù)熔斷等功能,需要的朋友參考下吧
    2023-06-06
  • Java計算對象大小的方法詳解

    Java計算對象大小的方法詳解

    在Java應(yīng)用程序的性能優(yōu)化場景中,時常需要考慮Java對象的大小,以便觀測,本文為大家介紹了常用的Java計算對象大小的方法,感興趣的可以了解下
    2025-01-01
  • 淺談java實現(xiàn)mongoDB的多條件查詢

    淺談java實現(xiàn)mongoDB的多條件查詢

    這篇文章主要介紹了java實現(xiàn)mongoDB的多條件查詢,具有一定參考價值,需要的朋友可以參考下。
    2017-09-09
  • 超簡潔java實現(xiàn)雙色球若干注隨機(jī)號碼生成(實例代碼)

    超簡潔java實現(xiàn)雙色球若干注隨機(jī)號碼生成(實例代碼)

    這篇文章主要介紹了超簡潔java實現(xiàn)雙色球若干注隨機(jī)號碼生成(實例代碼),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • JPA如何將查詢結(jié)果轉(zhuǎn)換為DTO對象

    JPA如何將查詢結(jié)果轉(zhuǎn)換為DTO對象

    這篇文章主要介紹了JPA如何將查詢結(jié)果轉(zhuǎn)換為DTO對象,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Maven?依賴發(fā)布與倉庫治理的過程解析

    Maven?依賴發(fā)布與倉庫治理的過程解析

    這篇文章主要介紹了Maven?依賴發(fā)布與倉庫治理的過程解析,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-05-05

最新評論

日喀则市| 石屏县| 诏安县| 密云县| 陇南市| 建宁县| 仁怀市| 达孜县| 新营市| 临城县| 开原市| 健康| 富锦市| 镇江市| 克什克腾旗| 北川| 藁城市| 什邡市| 偃师市| 怀远县| 白山市| 长治县| 和龙市| 台中市| 榆中县| 日土县| 泰顺县| 河东区| 会同县| 灵石县| 临武县| 大石桥市| 灵山县| 靖宇县| 易门县| 平乡县| 丹棱县| 扎鲁特旗| 祁东县| 金川县| 扎兰屯市|