当前位置: 首页 > 知识库问答 >
问题:

java - 对Java 多线程中的 currentThread( )方法的一个疑问 ?

海嘉赐
2023-06-08

这个方法是返回对当前正在执行的线程对象的引用。
但是,如果有两个线程在并行执行呢 ? 难道返回两个线程对象吗 ?

共有2个答案

堵凯
2023-06-08

企业微信截图_16861303608111.png
都返回自身的引用

斜高翰
2023-06-08
  1. currentThread()是一个方法,调用者是线程,哪个线程调用了这个方法,就会返回这个线程对象,所以不存在返回多个线程对象的可能
  2. 线程的并行,是指多颗cpu的情况下,允许进程/线程,同时运行在不同cpu,但每个线程还是独立的。
  3. a,b两个线程,同时运行在1,2两颗cpu上,当a线程调用currentThread返回a,当b线程调用currentThread返回b
  4. 所以currentThread和线程的运行方式,没有太大关系,它本身只是个方法,用来返回线程对象,
  5. 当在主线程中需要作子线程的调度的时候,可以通过currentThread这个返回,进行相关的后续操作
 类似资料:
  • 教程这样说道:“内部调用了this.notifyAll()而不是this.notify(),使用notifyAll()将唤醒所有当前正在this锁等待的线程,而notify()只会唤醒其中一个(具体哪个依赖操作系统,有一定的随机性)。这是因为可能有多个线程正在getTask()方法内部的wait()中等待” 。 我有点疑惑的一句话是 “可能有多个线程正在getTask()方法内部的wait()中等

  • 我正在阅读这篇文章,关于从一个线程中断另一个线程的建议是 “”“如果正确实施,以下几种方法应该可以奏效。 您可以让两个线程定期检查一些常见的标志变量(例如,将其称为stopNow),并安排两个线程在完成时进行设置。(标志变量需要是volatile…或正确同步的。) 您可以让两个线程定期调用线程。isInterrupted()方法,查看它是否已被中断。然后每个线程都需要调用线程。完成后,在另一个上中

  • 本文向大家介绍Java多线程——之一创建线程的四种方法,包括了Java多线程——之一创建线程的四种方法的使用技巧和注意事项,需要的朋友参考一下 1.实现Runnable接口,重载run(),无返回值 2.继承Thread类,复写run() 使用时通过调用Thread的start()(该方法是native),再调用创建线程的run(),不同线程的run方法里面的代码交替执行。 不足:由于java为单

  • 问题内容: 我在ServerConnectionManager中有以下代码: 我在其他一些使用ServerConnectionManager的线程的run方法中有一些代码:让我们将此线程称为B 问题是我无法从ServerConnectionManager的run方法中调用ReceivedPacket上的任何方法。但是,我能够从此ServerConnectionManager线程的构造函数中调用re

  • 本文向大家介绍详解Java多线程编程中CountDownLatch阻塞线程的方法,包括了详解Java多线程编程中CountDownLatch阻塞线程的方法的使用技巧和注意事项,需要的朋友参考一下 直译过来就是倒计数(CountDown)门闩(Latch)。倒计数不用说,门闩的意思顾名思义就是阻止前进。在这里就是指 CountDownLatch.await() 方法在倒计数为0之前会阻塞当前线程。

  • 本文向大家介绍五种Java多线程同步的方法,包括了五种Java多线程同步的方法的使用技巧和注意事项,需要的朋友参考一下 为什么要线程同步 因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常。举 个例子,如果一个银行账户同时被两个线程操作,一个取100块,一个存钱100块。假设账户原本有0块,如果取钱线程和存钱线程同