라이브러리

[PHP] Thread::getCurrentThread - 식별




PHP에서 Thread::getCurrentThread


PHP는 기본적으로 싱글 스레드 프로그래밍 언어로, 한 번에 하나의 스레드만 실행할 수 있습니다. 하지만 PHP 7.4부터는 Thread 클래스를 통해 멀티 스레딩을 지원합니다. Thread::getCurrentThread는 현재 실행 중인 스레드를 반환하는 메서드입니다.

# Thread::getCurrentThread 사용법


Thread::getCurrentThread 메서드는 현재 실행 중인 스레드를 반환합니다. 이 메서드는 Thread 클래스의 인스턴스 메서드이므로, Thread 클래스의 인스턴스에서 호출해야 합니다.

# 예제


#hostingforum.kr
php

class MyThread extends Thread {

    public function run() {

        echo "현재 스레드 ID: " . Thread::getCurrentThread()->getId() . "
";

    }

}



$thread = new MyThread();

$thread->start();



// 메인 스레드에서 현재 스레드 ID를 출력합니다.

echo "메인 스레드 ID: " . Thread::getCurrentThread()->getId() . "
";



이 예제에서, MyThread 클래스는 Thread 클래스를 상속합니다. run() 메서드는 스레드가 실행되는 동안 호출되는 메서드입니다. Thread::getCurrentThread() 메서드를 사용하여 현재 스레드 ID를 출력합니다.

# 결과


#hostingforum.kr


메인 스레드 ID: 1

현재 스레드 ID: 2



# Thread::getCurrentThread의 특징


* Thread::getCurrentThread 메서드는 현재 실행 중인 스레드를 반환합니다.
* 이 메서드는 Thread 클래스의 인스턴스 메서드이므로, Thread 클래스의 인스턴스에서 호출해야 합니다.
* 스레드 ID는 운영체제에 따라 달라질 수 있습니다.

Thread 클래스의 사용


PHP 7.4부터는 Thread 클래스를 통해 멀티 스레딩을 지원합니다. Thread 클래스는 스레드의 생성, 시작, 종료, 그리고 스레드 간 통신을 위한 메서드를 제공합니다.

# Thread 클래스의 생성


Thread 클래스의 인스턴스를 생성하려면, Thread 클래스의 생성자를 호출해야 합니다.

#hostingforum.kr
php

$thread = new Thread();



# Thread 클래스의 시작


Thread 클래스의 인스턴스를 시작하려면, start() 메서드를 호출해야 합니다.

#hostingforum.kr
php

$thread->start();



# Thread 클래스의 종료


Thread 클래스의 인스턴스를 종료하려면, join() 메서드를 호출해야 합니다.

#hostingforum.kr
php

$thread->join();



# Thread 클래스의 통신


Thread 클래스의 인스턴스 간 통신을 위해, send() 메서드를 사용할 수 있습니다.

#hostingforum.kr
php

$thread->send("Hello, world!");



# 예제


#hostingforum.kr
php

class MyThread extends Thread {

    public function run() {

        echo "현재 스레드 ID: " . Thread::getCurrentThread()->getId() . "
";

        $this->send("Hello, world!");

    }

}



$thread = new MyThread();

$thread->start();



// 메인 스레드에서 현재 스레드 ID를 출력합니다.

echo "메인 스레드 ID: " . Thread::getCurrentThread()->getId() . "
";



// 메인 스레드에서 받은 메시지를 출력합니다.

echo "받은 메시지: " . $thread->receive() . "
";



이 예제에서, MyThread 클래스는 Thread 클래스를 상속합니다. run() 메서드는 스레드가 실행되는 동안 호출되는 메서드입니다. Thread::getCurrentThread() 메서드를 사용하여 현재 스레드 ID를 출력합니다. send() 메서드를 사용하여 메인 스레드에 메시지를 보냅니다. receive() 메서드를 사용하여 받은 메시지를 출력합니다.

# 결과


#hostingforum.kr


메인 스레드 ID: 1

현재 스레드 ID: 2

받은 메시지: Hello, world!



Thread 클래스의 제한 사항


* PHP는 기본적으로 싱글 스레드 프로그래밍 언어로, 한 번에 하나의 스레드만 실행할 수 있습니다.
* Thread 클래스는 PHP 7.4부터 지원되며, 이전 버전에서는 사용할 수 없습니다.
* Thread 클래스의 인스턴스는 시작하기 전에 생성해야 합니다.
* Thread 클래스의 인스턴스는 join() 메서드를 호출하여 종료해야 합니다.
* Thread 클래스의 인스턴스는 send() 메서드를 사용하여 통신해야 합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 153 페이지

검색

게시물 검색