두 개의 스레드가 동시에 실행되고 있는지 어떻게 알 수 있습니까?

존 아크 카이

동시에 실행되는 두 개의 스레드를 만들려고합니다. 현재 스레드가 종료 된 후 스레드가 실행되는 출력에서 ​​이음새가 동시에 실행되는지 테스트하려면 어떻게해야합니까? 이것이 일어나고 있습니까 아니면 동시에 실행되고 있습니까?

public class Start {

public static void main(String[] args) {
    new ThreadOne();
    Thread t = Thread.currentThread(); // Static Method
    t.setName("Thread One");
    System.out.println(t);

        for(int i = 0; i<=100; i++) {
            System.out.println("Main Thread: " + i);
        }

    }

}

public class ThreadOne implements Runnable {
Thread t;
public ThreadOne() {
    t =new Thread(this, "Demo Thread");
    System.out.println("Child Thread" + t);
    t.start();
}
@Override
public void run() {
    for(int i = 0; i<=100; i++) {

            System.out.println("Child Thread: " + i);

    }

}

}

산출

Main Thread: 0
Main Thread: 1
Main Thread: 2
Main Thread: 3
Main Thread: 4
Main Thread: 5
Main Thread: 6
Main Thread: 7
Main Thread: 8
Main Thread: 9
Main Thread: 10

Child Thread: 0
Child Thread: 1
Child Thread: 2
Child Thread: 3
Child Thread: 4
Child Thread: 5
Child Thread: 6
Child Thread: 7
Child Thread: 8
Child Thread: 9
Child Thread: 10
스티븐 C

이 경우 자식 스레드가 시작되기 전에 주 스레드가 완료된 것처럼 보입니다. 그리고 당신이 작성한 코드 에는 두 스레드의 동시 실행 또는 인터리브 실행 필요한 것은 없습니다 .


더 광범위한 질문이 흥미 롭습니다.

동시에 실행되는 두 개의 스레드를 만들려고합니다. 동시에 실행 중인지 어떻게 테스트 할 수 있습니까?

실제로 응용 프로그램의 두 스레드가 실제로 동시에 실행되는지 여부 확실하게 테스트하거나 증명하는 것이 가능하다고 생각하지 않습니다 . 내가 아는 한, (문자 그대로) 동시에 실행되는 스레드에 의해 생성 될 수있는 외부에서 관찰 가능한 실행 패턴은 이론적으로 단일 코어가있는 시스템에서 시간 분할 스레드에 의해 생성 될 수도 있습니다.

실제로 시간 분할의 세분성은 일반적으로 동작의 차이를 볼 있도록합니다 . 그러나 특정 응용 프로그램의 코드와 함께 사용 가능한 증거를 사례별로 평가해야한다고 생각합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

페이지가 브라우저에서 실행되고 있는지 어떻게 알 수 있습니까?

분류에서Dev

별도의 스레드에있는 HTTPServer가 작동 중이고 서비스를 제공하고 있음을 어떻게 확실하게 알 수 있습니까?

분류에서Dev

내 앱이 정상적으로 실행되지 않고 Google 어시스턴트에 의해 열렸는지 어떻게 알 수 있습니까?

분류에서Dev

PC가 고용주에 의해 모니터링되고 있는지 어떻게 알 수 있습니까?

분류에서Dev

두 개의 분기가 실수로 동일한 코드 기반을 가지고 있습니다. 어떻게 되돌릴 수 있습니까?

분류에서Dev

MySQL에서 사용자가 두 개의 특정 그룹에 연결되었는지 어떻게 알 수 있습니까?

분류에서Dev

Cassandra 클러스터에 몇 개의 노드가 있는지 어떻게 알 수 있습니까?

분류에서Dev

Mule에 URI 매개 변수가 있는지 어떻게 알 수 있습니까?

분류에서Dev

어레이가 어떤 캐시 수준에 저장되어 있는지 어떻게 알 수 있습니까?

분류에서Dev

두 개의 중첩 된 FirebaseIndexRecyclerAdapter가 데이터로드를 완료했는지 어떻게 알 수 있습니까?

분류에서Dev

브라우저에서 어떤 Node.js 코드가 실행되는지 어떻게 알 수 있습니까?

분류에서Dev

특정 부스트 스레드가 부스트 C ++에서 실행되었는지 어떻게 알 수 있습니까?

분류에서Dev

두 개의 목록으로 반복되고 일치하는지 여부를 알아내는 파이썬 코드를 어떻게 사용할 수 있습니까?

분류에서Dev

내 스크립트가 직접 실행되고 있는지 또는 다른 스크립트에 의해로드되고 있는지 알 수 있습니까?

분류에서Dev

Linux 명령에서 실행되는 터미널의 프로세스를 어떻게 알 수 있습니까?

분류에서Dev

Postgresql에서 한 열에 M 개의 고유 값이있는 테이블에서 알 수없는 레코드 수를 어떻게 가져올 수 있습니까?

분류에서Dev

두 개의 스레드가있는 하나의 프로세스 또는 두 개의 프로세스가 있는지 어떻게 확인할 수 있습니까?

분류에서Dev

컴퓨터에 몇 개의 비디오 카드가 있는지 어떻게 알 수 있습니까?

분류에서Dev

zsh가 권한으로 실행되고 있는지 어떻게 알 수 있습니까?

분류에서Dev

개행 문자가 Python에서 두 개의 별개 단어를 분할하는지 여부를 알 수있는 방법이 있습니까?

분류에서Dev

함수가 chaiscript에 정의되어 있는지 어떻게 확인하고 입력 된 인수로 어떻게 실행할 수 있습니까?

분류에서Dev

두 개의 소스 파일이 기능적으로 동일한 코드를 생성하는지 어떻게 알 수 있습니까?

분류에서Dev

내 시스템의 모든 하드웨어에 드라이버가 올바르게 설치되었는지 어떻게 알 수 있습니까?

분류에서Dev

내 시스템의 모든 하드웨어에 드라이버가 올바르게 설치되었는지 어떻게 알 수 있습니까?

분류에서Dev

내 앱에 대해 알림 표시가 비활성화되어 있는지 어떻게 알 수 있습니까?

분류에서Dev

이 두 버전의 스칼라가 정확히 동일한 지 어떻게 알 수 있습니까?

분류에서Dev

내 Linux 시스템이 ELF 32 비트 및 ELF 64 비트 바이너리를 모두 실행할 수 있는지 어떻게 알 수 있습니까?

분류에서Dev

레이크 작업이 레일에서 실행되었는지 어떻게 알 수 있습니까?

분류에서Dev

두 개의 SQL 테이블에서 항목을 검색하고 그것이 어떤 테이블에서 왔는지 어떻게 알 수 있습니까?

Related 관련 기사

  1. 1

    페이지가 브라우저에서 실행되고 있는지 어떻게 알 수 있습니까?

  2. 2

    별도의 스레드에있는 HTTPServer가 작동 중이고 서비스를 제공하고 있음을 어떻게 확실하게 알 수 있습니까?

  3. 3

    내 앱이 정상적으로 실행되지 않고 Google 어시스턴트에 의해 열렸는지 어떻게 알 수 있습니까?

  4. 4

    PC가 고용주에 의해 모니터링되고 있는지 어떻게 알 수 있습니까?

  5. 5

    두 개의 분기가 실수로 동일한 코드 기반을 가지고 있습니다. 어떻게 되돌릴 수 있습니까?

  6. 6

    MySQL에서 사용자가 두 개의 특정 그룹에 연결되었는지 어떻게 알 수 있습니까?

  7. 7

    Cassandra 클러스터에 몇 개의 노드가 있는지 어떻게 알 수 있습니까?

  8. 8

    Mule에 URI 매개 변수가 있는지 어떻게 알 수 있습니까?

  9. 9

    어레이가 어떤 캐시 수준에 저장되어 있는지 어떻게 알 수 있습니까?

  10. 10

    두 개의 중첩 된 FirebaseIndexRecyclerAdapter가 데이터로드를 완료했는지 어떻게 알 수 있습니까?

  11. 11

    브라우저에서 어떤 Node.js 코드가 실행되는지 어떻게 알 수 있습니까?

  12. 12

    특정 부스트 스레드가 부스트 C ++에서 실행되었는지 어떻게 알 수 있습니까?

  13. 13

    두 개의 목록으로 반복되고 일치하는지 여부를 알아내는 파이썬 코드를 어떻게 사용할 수 있습니까?

  14. 14

    내 스크립트가 직접 실행되고 있는지 또는 다른 스크립트에 의해로드되고 있는지 알 수 있습니까?

  15. 15

    Linux 명령에서 실행되는 터미널의 프로세스를 어떻게 알 수 있습니까?

  16. 16

    Postgresql에서 한 열에 M 개의 고유 값이있는 테이블에서 알 수없는 레코드 수를 어떻게 가져올 수 있습니까?

  17. 17

    두 개의 스레드가있는 하나의 프로세스 또는 두 개의 프로세스가 있는지 어떻게 확인할 수 있습니까?

  18. 18

    컴퓨터에 몇 개의 비디오 카드가 있는지 어떻게 알 수 있습니까?

  19. 19

    zsh가 권한으로 실행되고 있는지 어떻게 알 수 있습니까?

  20. 20

    개행 문자가 Python에서 두 개의 별개 단어를 분할하는지 여부를 알 수있는 방법이 있습니까?

  21. 21

    함수가 chaiscript에 정의되어 있는지 어떻게 확인하고 입력 된 인수로 어떻게 실행할 수 있습니까?

  22. 22

    두 개의 소스 파일이 기능적으로 동일한 코드를 생성하는지 어떻게 알 수 있습니까?

  23. 23

    내 시스템의 모든 하드웨어에 드라이버가 올바르게 설치되었는지 어떻게 알 수 있습니까?

  24. 24

    내 시스템의 모든 하드웨어에 드라이버가 올바르게 설치되었는지 어떻게 알 수 있습니까?

  25. 25

    내 앱에 대해 알림 표시가 비활성화되어 있는지 어떻게 알 수 있습니까?

  26. 26

    이 두 버전의 스칼라가 정확히 동일한 지 어떻게 알 수 있습니까?

  27. 27

    내 Linux 시스템이 ELF 32 비트 및 ELF 64 비트 바이너리를 모두 실행할 수 있는지 어떻게 알 수 있습니까?

  28. 28

    레이크 작업이 레일에서 실행되었는지 어떻게 알 수 있습니까?

  29. 29

    두 개의 SQL 테이블에서 항목을 검색하고 그것이 어떤 테이블에서 왔는지 어떻게 알 수 있습니까?

뜨겁다태그

보관