>  기사  >  Java  >  Java 다중 스레드 애플리케이션 메소드의 전체 암호 해독

Java 다중 스레드 애플리케이션 메소드의 전체 암호 해독

黄舟
黄舟원래의
2016-12-15 10:04:501606검색

Java 멀티스레딩은 우리가 매우 자주 사용하는 것인데, 지속적인 학습 과정에서 다양한 적용 방법이 있습니다. 아래에서 이러한 주요 방법을 알아보겠습니다. 이것이 도움이 되기를 바랍니다. 먼저 구체적인 방법 분류를 살펴보자.

Java 다중 스레드 프로그램에서 일반적으로 사용되는 메소드에는 run(), start(), wait(), sleep(), inform(), informAll(), Yield(), Join()이 있습니다. , 그리고 중요한 키워드가 동기화되어 있습니다. 이러한 메서드에 대한 설명은 다음과 같습니다.

1. run() 및 start()

이 두 메서드는 run() 메서드에 병렬 처리가 필요한 코드를 넣어야 합니다. start() 메소드에 의해 시작된 스레드는 Java의 메모리 메커니즘에 의해 규정된 run() 메소드를 자동으로 호출합니다. 그리고 run() 메서드에는 공개 액세스 권한이 있어야 하며 반환 값 유형은 void입니다.

2. 키워드 동기화

이 키워드는 공유 데이터를 보호하기 위해 사용됩니다. 물론 어떤 데이터가 공유 데이터인지 구별하는 것이 전제입니다. 각 개체에는 잠금 플래그가 있습니다. 스레드가 개체에 액세스하면 동기화됨에 의해 수정된 데이터가 "잠겨"서 다른 스레드가 해당 개체에 액세스할 수 없게 됩니다. 현재 스레드가 데이터의 이 부분에 액세스한 후 잠금 플래그를 해제하고 다른 스레드가 해당 데이터에 액세스할 수 있습니다.

1.public ThreadTest는 Runnable을 구현합니다

2.{

3.public 동기화 void run(){

4.for(int i=0 ;i<10;i++)

 5.{

 6.System.out.println(" " + i);

 7.}

8.}

9.public static void main(String[] args)

10.{

11.Runnable r1 = new ThreadTest();

 12.Runnable r2 = new ThreadTest();

 13.Thread t1 = new Thread(r1);

 14.Thread t2 = new Thread(r2);

 15.t1.start();

 16.t2.start();

 17.}

 18.}

 위 이 프로그램의 i 변수는 공유 데이터가 아닙니다. 즉, 여기의 동기화 키워드가 작동하지 않습니다. 두 스레드 t1과 t2는 두 개체(r1, r2)의 스레드이기 때문입니다. 서로 다른 객체에는 서로 다른 데이터가 있으므로 두 객체 r1과 r2의 i 변수는 데이터를 공유하지 않습니다.

코드가 다음과 같이 변경되면 동기화 키워드가 작동합니다

19.Runnable r = new ThreadTest();

20.Thread t1 = new Thread( r);

 21.Thread t2 = 새 스레드(r);

 22.t1.start();

 23.t2.start();

위 내용은 Java 멀티스레딩에 대한 자세한 소개입니다. 더 많은 관련 글은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.