精华内容
下载资源
问答
  • 获取当前线程名 val threadName = Thread.currentThread().getName

     获取当前的线程名

     val threadName = Thread.currentThread().getName

    展开全文
  • 获取当前正在运行的所有线程

    千次阅读 2018-08-31 14:49:44
    private Thread[] findAllThreads() { ThreadGroup group = Thread.currentThread().getThreadGroup(); ThreadGroup topGroup = group;... /* 遍历线程组树,获取根线程组 */ while (group != null) { t...
    private Thread[] findAllThreads() {
        ThreadGroup group = Thread.currentThread().getThreadGroup();
        ThreadGroup topGroup = group;
    	 
        /* 遍历线程组树,获取根线程组 */
        while (group != null) {
            topGroup = group;
            group = group.getParent();
        }
        /* 激活的线程数加倍 */
        int estimatedSize = topGroup.activeCount() * 2;
        Thread[] slackList = new Thread[estimatedSize];
    	 
        /* 获取根线程组的所有线程 */
        int actualSize = topGroup.enumerate(slackList);
        /* copy into a list that is the exact size */
        Thread[] list = new Thread[actualSize];
        System.arraycopy(slackList, 0, list, 0, actualSize);
        return (list);
    }
    Thread[] findAllThreads = findAllThreads();
    int cnt=0;
    for(Thread t : findAllThreads) {
        String name = t.getName();
        System.out.println(name + "正在运行");
    }

    方法摘要 
    static int activeCount() 
              返回当前线程的线程组中活动线程的数目。 
     void checkAccess() 
              判定当前运行的线程是否有权修改该线程。 
     int countStackFrames() 
              已过时。 该调用的定义依赖于 suspend(),但它遭到了反对。此外,该调用的结果从来都不是意义明确的。 
    static Thread currentThread() 
              返回对当前正在执行的线程对象的引用。 
     void destroy() 
              已过时。 该方法最初用于破坏该线程,但不作任何清除。它所保持的任何监视器都会保持锁定状态。不过,该方法决不会被实现。即使要实现,它也极有可能以 suspend() 方式被死锁。如果目标线程被破坏时保持一个保护关键系统资源的锁,则任何线程在任何时候都无法再次访问该资源。如果另一个线程曾试图锁定该资源,则会出现死锁。这类死锁通常会证明它们自己是“冻结”的进程。有关更多信息,请参阅为何 Thread.stop、Thread.suspend 和 Thread.resume 遭到反对?。 
    static void dumpStack() 
              打印当前线程的堆栈跟踪。 
    static int enumerate(Thread[] tarray) 
              将当前线程的线程组及其子组中的每一个活动线程复制到指定的数组中。 
    static Map<Thread,StackTraceElement[]> getAllStackTraces() 
              返回所有活动线程的堆栈跟踪的一个映射。 
     ClassLoader getContextClassLoader() 
              返回该线程的上下文 ClassLoader。 
    static Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler() 
              返回线程由于未捕获到异常而突然终止时调用的默认处理程序。 
     long getId() 
              返回该线程的标识符。 
     String getName() 
              返回该线程的名称。 
     int getPriority() 
              返回线程的优先级。 
     StackTraceElement[] getStackTrace() 
              返回一个表示该线程堆栈转储的堆栈跟踪元素数组。 
     Thread.State getState() 
              返回该线程的状态。 
     ThreadGroup getThreadGroup() 
              返回该线程所属的线程组。 
     Thread.UncaughtExceptionHandler getUncaughtExceptionHandler() 
              返回该线程由于未捕获到异常而突然终止时调用的处理程序。 
    static boolean holdsLock(Object obj) 
              当且仅当当前线程在指定的对象上保持监视器锁时,才返回 true。 
     void interrupt() 
              中断线程。 
    static boolean interrupted() 
              测试当前线程是否已经中断。 
     boolean isAlive() 
              测试线程是否处于活动状态。 
     boolean isDaemon() 
              测试该线程是否为守护线程。 
     boolean isInterrupted() 
              测试线程是否已经中断。 
     void join() 
              等待该线程终止。 
     void join(long millis) 
              等待该线程终止的时间最长为 millis 毫秒。 
     void join(long millis, int nanos) 
              等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。 
     void resume() 
              已过时。 该方法只与 suspend() 一起使用,但 suspend() 已经遭到反对,因为它具有死锁倾向。有关更多信息,请参阅为何 Thread.stop、Thread.suspend 和 Thread.resume 遭到反对?。 
     void run() 
              如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。 
     void setContextClassLoader(ClassLoader cl) 
              设置该线程的上下文 ClassLoader。 
     void setDaemon(boolean on) 
              将该线程标记为守护线程或用户线程。 
    static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) 
              设置当线程由于未捕获到异常而突然终止,并且没有为该线程定义其他处理程序时所调用的默认处理程序。 
     void setName(String name) 
              改变线程名称,使之与参数 name 相同。 
     void setPriority(int newPriority) 
              更改线程的优先级。 
     void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) 
              设置该线程由于未捕获到异常而突然终止时调用的处理程序。 
    static void sleep(long millis) 
              在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。 
    static void sleep(long millis, int nanos) 
              在指定的毫秒数加指定的纳秒数内让当前正在执行的线程休眠(暂停执行)。 
     void start() 
              使该线程开始执行;Java 虚拟机调用该线程的 run 方法。 
     void stop() 
              已过时。 该方法具有固有的不安全性。用 Thread.stop 来终止线程将释放它已经锁定的所有监视器(作为沿堆栈向上传播的未检查 ThreadDeath 异常的一个自然后果)。如果以前受这些监视器保护的任何对象都处于一种不一致的状态,则损坏的对象将对其他线程可见,这有可能导致任意的行为。stop 的许多使用都应由只修改某些变量以指示目标线程应该停止运行的代码来取代。目标线程应定期检查该变量,并且如果该变量指示它要停止运行,则从其运行方法依次返回。如果目标线程等待很长时间(例如基于一个条件变量),则应使用 interrupt 方法来中断该等待。有关更多信息,请参阅为何 Thread.stop、Thread.suspend 和 Thread.resume 遭到反对?。 
     void stop(Throwable obj) 
              已过时。 该方法具有固有的不安全性。请参阅 stop() 以获得详细信息。该方法的附加危险是它可用于生成目标线程未准备处理的异常(包括若没有该方法该线程不太可能抛出的已检查的异常)。有关更多信息,请参阅为何 Thread.stop、Thread.suspend 和 Thread.resume 遭到反对?。 
     void suspend() 
              已过时。 该方法已经遭到反对,因为它具有固有的死锁倾向。如果目标线程挂起时在保护关键系统资源的监视器上保持有锁,则在目标线程重新开始以前任何线程都不能访问该资源。如果重新开始目标线程的线程想在调用 resume 之前锁定该监视器,则会发生死锁。这类死锁通常会证明自己是“冻结”的进程。有关更多信息,请参阅为何 Thread.stop、Thread.suspend 和 Thread.resume 遭到反对?。 
     String toString() 
              返回该线程的字符串表示形式,包括线程名称、优先级和线程组。 
    static void yield() 
              暂停当前正在执行的线程对象,并执行其他线程。 
      从类 java.lang.Object 继承的方法 
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait 

    展开全文
  • 请问MFC跨线程能不能调用对方线程正在运行的函数?怎么得到当前正在运行线程运行的是哪一个函数的函数名?谢谢
  • 我使用boost::thread_group::size()函数,想得到当前时刻boost::thread_group有多少线程运行,结果发现该函数不能准确的显示当前boost::thread_group里运行线程数。就只好打个断点,然后用VC查看还有多少线程在...

    我使用boost::thread_group::size()函数,想得到当前时刻boost::thread_group有多少线程在运行,结果发现该函数不能准确的显示当前boost::thread_group里运行的线程数。就只好打个断点,然后用VC查看还有多少线程在运行了,如下:


    完。

    展开全文
  • linux下面显示所有正在运行线程

    千次阅读 2017-11-29 19:02:51
    它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息。ps命令能提供一份当前进程的快照。如果你想状态可以自动刷新,可以使用top命令。   ps命令 ...

    在linux中怎样查看所有运行中的进程?

    你可以使用ps命令。它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息。ps命令能提供一份当前进程的快照。如果你想状态可以自动刷新,可以使用top命令。

     

    ps命令

    输入下面的ps命令,显示所有运行中的进程:

    # ps aux | less

     

    其中,

    -A:显示所有进程

    a:显示终端中包括其它用户的所有进程

    x:显示无控制终端的进程

     

    任务:查看系统中的每个进程。

    # ps -A

    # ps -e

     

    任务:查看非root运行的进程

    # ps -U root -u root -N

     

    任务:查看用户vivek运行的进程

    # ps -u vivek

     

    任务:top命令

    top命令提供了运行中系统的动态实时视图。在命令提示行中输入top:

    # top



    任务:显示进程的树状图。

    pstree以树状显示正在运行的进程。树的根节点为pid或init。如果指定了用户名,进程树将以用户所拥有的进程作为根节点。

    $ pstree


    任务:使用ps列印进程树

    # ps -ejH

    # ps axjf

     

    任务:获得线程信息

    输入下列命令:

    # ps -eLf

    # ps axms

     

    任务:获得安全信息

    输入下列命令:

    # ps -eo euser,ruser,suser,fuser,f,comm,label

    # ps axZ

    # ps -eM

     

    任务:将进程快照储存到文件中

    输入下列命令:

    # top -b -n1 > /tmp/process.log

     

    你也可以将结果通过邮件发给自己:

    # top -b -n1 | mail -s 'Process snapshot' you@example.com

     

    任务:查找进程

    使用pgrep命令。pgrep能查找当前正在运行的进程并列出符合条件的进程ID。例如显示firefox的进程ID:

    $ pgrep firefox

     

    下面命令将显示进程名为sshd、所有者为root的进程。

    $ pgrep -u root sshd

     

    向htop和atop说hello

    htop是一个类似top的交互式进程查看工具,但是可以垂直和水平滚动来查看所有进程和他们的命令行。进程的相关操作(killing,renicing)不需要输入PID。要安装htop输入命令:

    # apt-get install htop

     

    # yum install htop

     

    在命令提示行中输入htop:

    # htop


    展开全文
  • 查看正在运行的mysql线程

    千次阅读 2012-08-21 15:46:51
    processlist命令的输出结果显示了有哪些线程运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令。 1. 进入mysql/bin目录下输入mysqladmin processlist; 2. 启动mysql,输入show processlist; ...
  • 在Java.lang.Thread中提供了getAllStackTraces()方法用于获取虚拟机中所有线程的StackTraceElement对象。下面写了个Demoimport java.util.Map;/** * Created by wzj on 2017/7/8. */ public class MemoryMonitor...
  • package day09; /** ... * 获取运行当前方法的线程。 * @author kaixu * */ public class ThreadDemo4 { public static void main(String[] args) { Thread main = Thread.currentThread()...
  • 当不是抢占式的调度时,高优先级的线程将在当前线程终止后,得到优先的执行权。 调用sleep方法,当前线程j进入阻塞状态,sleep执行完成后重新进入就入就绪状态 线程结束的三个原因: 1、run方法执行完成,线程正常...
  • C#获得当前线程的ID号

    千次阅读 2018-05-14 14:10:42
    C# 获得当前 进程 或 线程的ID 如果获得当前进程的Id用: Process[] processes = Process.GetProcesses();  foreach(Process process in processes)  {  if(process.ProcessName == "进程名"  {...
  •  yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会。因此,使用yield()的目的是让相同优先级的线程之间能适当的轮转执行。但是,实际中无法保证yield()达到让步目的,...
  • [img=https://img-bbs.csdn.net/upload/201405/13/1399951924_974713.png][/img] [img=... 所有项目一运行,就出现这样的提示,是编译器的问题还是其他原因? 重启项目,清理解决方案也是不行
  • 查看线程运行状态

    千次阅读 2017-06-28 19:25:15
    线程需要获得对象的内置锁,而该锁正被其他线程拥有,线程处于阻塞状态。当线程等待其他线程通知调度表可以运行时,该线程处于等待状态。对于一些含有时间参数的方法,如Thread类的sleep()方法,可以使线程处于...
  • 如何统计每个线程单独运行的时间呢? 比如同时起10个线程,有办法得到每个线程从开始到结束的耗时吗?
  • 线程运行状态

    千次阅读 2018-12-05 14:10:49
    线程从创建、运行到结束总是处于... 当一个线程处于新生状态时,程序还没有开始运行线程中的代码 就绪状态 一个新创建的线程并不自动开始运行,要执行线程,必须调用线程的start()方法。当线程对象调用start()方法...
  • 这篇学习关于Thread类的两个方法,第一个是获取当前线程对象,返回的是一个Thread对象。第二个方法是我们自动化中经常使用的,线程休眠。 1.currentThread() 获取的是当前线程对象,是对象不是对象名称,如果要...
  • 得到 ExecutorService 当前活动的线程

    万次阅读 2013-04-07 22:25:40
    import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.... * 测试得到线程池中的当前活动线程  * @author keji  * @2013-4-7  */
  • java中如何使正在运行中的线程退出

    千次阅读 2014-09-26 11:33:03
    终止线程的三种方法   有三种方法可以使终止线程。   1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。   2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend...
  • 如何等待一个线程结束。那么如果不希望等待线程结束,而是根据问题的需要随时都要中断线程使其结束,这种对线程的控制方法该如何实现呢?  解决思路  首先必须先明确“中断”这个概念的实际含义,这里的中断是指...
  • java中获得当前执行线程的名称

    万次阅读 2015-10-12 16:49:40
    package 线程生命周期; public class 获得主线程 { public static void main(String[] args) { // TODO Auto-generated... //获得当前线程的名称 System.out.println(Thread.currentThread().getName()); } }
  • 文章目录实例描述实现过程代码...当线程需要获得对象的内置锁,而该锁正被其他线程拥有时,线程处于阻塞状态;当线程等待其他线程通知调度表可以运行时,该线程处于等待状态;当run()方法运行完毕或出现异常时,线...
  • Console.WriteLine("当前线程名称(ID)为:{1} ({0}),最小值为:{2},共耗时:{3}/ms!\n", ThNumber, Thread.CurrentThread.Name, MinValue, ts2.TotalMilliseconds); } public static void ...
  • 获取当前线程名称

    千次阅读 2016-12-28 19:08:34
    public static String getCurProcessName(Context context) { int pid = android.os.Process.myPid(); ActivityManager mActivityManager = (ActivityManager) context .getSystemService(Conte
  • 线程在执行单元中不允许抛出checked异常,而且线程运行在自己的上下文中,派生它的线程无法直接获得运行中出现的异常信息。对此,Java为我们提供了UncaughtExceptionHandler接口,当线程运行过程中出现异常时,...
  • 浅谈js运行机制(线程

    万次阅读 多人点赞 2016-12-19 16:41:00
    浅谈js运行机制(线程
  • 在windows编程中,有时候我们会遇到需要传入作用对象句柄的函数,如GetThreadTimes(HANDLE hThread, ...)函数,允许我们获得句柄指定线程运行...类似的,我们也有函数可以获得当前进程的句柄。 HANDLE GetCurrentTh
  • 运行库与多线程

    千次阅读 2010-04-10 14:49:00
    11.3 运行库与多线程11.3.1 CRT的多线程困扰线程的访问权限线程的访问能力非常自由,它可以访问进程内存里的所有数据,甚至包括其他线程的堆栈(如果它知道其他线程的堆栈地址,然而这是很少见的情况),但实际...
  • 上一章大概分析了rt-thread操作系统的线程调度器的源码,此文具体来讲讲rt-thread在调试时,是如何获取获得当前最高优先级线程的算法过程。之前已提到过,rt-thread采用了一个位图来实现此过程,在具体分析此过程...
  • (2)调用Thread.yield():不能保障太多事情,尽管通常它会让当前运行线程回到可运行性状态,使得有相同优先级的线程有机会执行。(3)调用join()方法:保证当前线程停止执行,直到该线程所加入的线程完成为止。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 465,142
精华内容 186,056
关键字:

为了得到当前正在运行的线程