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)를 참고해주세요!