Thread(5)-synchronized와 static이 만나면
2111 단어 synchronized
코드 예:
package com.test;
public class ThreadTest4
{
/**
* @param args
*/
public static void main(String[] args)
{
Example example = new Example();
Thread001 t1 = new Thread001(example);
example = new Example();
Thread002 t2 = new Thread002(example);
t1.start();
t2.start();
}
}
//
class Example
{
// 1
public synchronized static void outPut1()
{
for (int i = 0; i < 20; i++)
{
try
{
Thread.sleep((long) (Math.random() * 1000));
}
catch (InterruptedException e)
{
e.printStackTrace();
}
System.out.println("outPut1:" + i);
}
}
// 2
public synchronized static void outPut2()
{
for (int i = 0; i < 20; i++)
{
try
{
Thread.sleep((long) (Math.random() * 1000));
}
catch (InterruptedException e)
{
e.printStackTrace();
}
System.out.println("outPut2:" + i);
}
}
}
// 1
class Thread001 extends Thread
{
private Example example;
public Thread001(Example example)
{
this.example = example;
}
@Override
public void run()
{
example.outPut1();
}
}
// 2
class Thread002 extends Thread
{
private Example example;
public Thread002(Example example)
{
this.example = example;
}
@Override
public void run()
{
example.outPut2();
}
}
출력은 순차적으로 출력됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
javasynchronized 동기화 정적 방법과 동기화 비정적 방법의 공통점우리는synchronized를 사용하여 대상 변수를 동기화할 수 있을 뿐만 아니라,synchronizedl를 통해 동기화 클래스의 정적 방법과 비정적 방법을 동기화할 수 있습니다. 자바 관련 문법에서 알 수 있듯이s...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.