자바 다 중 스 레 드 빨리 해결 해 드릴 게 요.
스 레 드 는 운영 체제 스케줄 링 의 최소 단위 이 며 경량급 프로 세 스 라 고도 부른다.그것 은 프로 세 스 에 포함 되 어 있 으 며 프로 세 스 의 실제 운영 단위 입 니 다.같은 프로 세 스 는 여러 개의 스 레 드 를 만 들 수 있 습 니 다.모든 프로 세 스 는 독립 된 메모리 공간 을 가지 고 있 습 니 다.공 유 된 메모리 변 수 를 방문 할 수 있 습 니 다.
2.스 레 드 의 상태
스 레 드 의 상 태 는 일반적으로 Runable 과 Blocked 를 볼 수 있 습 니 다.가장 많은 것 은 Blocked 입 니 다.cpu 의 시간 이 짧 기 때문에 IO 를 빨리 기다 리 고 임계 자원 을 기다 리 고 있 습 니 다.대충 알 면 돼.
3.프로 세 스,스 레 드 를 어떻게 통속 적 으로 이해 합 니까?
예 를 들 어 식당 을 열 었 습 니 다.식당 이라는 실 체 는 바로 과정 입 니 다.식당 안의 종업원 은 바로 라인 입 니 다.식당 안의 좌석 은 바로 자원(게임 안의 데이터)입 니 다.모든 종업원 은 손님 을 자리 에 앉 힐 수 있 습 니 다.여러 명의 종업원 이 자 리 를 배정 하 는 것 은 다 중 스 레 드 경쟁 이 고 자 물 쇠 는 바로 번 호 를 매 기 는 것 입 니 다.스 레 드 탱크 는 여러 명의 종업원 들 이 줄곧 거기에 서서 호출 되 기 를 기다 리 고 있다.
4.스 레 드 와 프로 세 스 의 차이
프로 세 스 는 독립 된 주소 공간 을 가지 고 있 습 니 다.장점 은 격 리 도가 좋 고 안정 적 이라는 것 입 니 다.운영 체제 가 관리 하 는 것 이기 때문에 프로 세 스 와 프로 세 스 간 에 논리 적 으로 격 리 되 어 있 습 니 다.운영 체제 에 문제 가 없 으 면 프로 세 스 의 오 류 는 다른 프로 세 스 에 영향 을 주지 않 습 니 다.부족 한 점 은 정보 자원 공유 의 번 거 로 움 입 니 다.스 레 드 는 프로 세 스 가 시작 하 는 실행 장치 일 뿐 프로 세 스 자원 을 공유 하 는 것 입 니 다.생 성,소각,전환 이 간단 하고 속도 가 빠 르 며 메모리 사용량 이 적 으 며 CPU 이 용 률 이 높 습 니 다.그러나 프로그래머 가 통제 해 야 할 것 도 비교적 많 고 서로 영향 을 주 며 문제 가 발생 할 확률 이 높다.한 라인 이 끊 기 면 전체 프로 세 스 가 끊 어 지기 때문에 프로그래머 의 측면 에서 볼 때 우 리 는 어떤 코드 가 라인 이 안전 한 것 만 볼 수 있 을 뿐 프로 세 스 가 안전 하 다 고 말 하지 않 는 다.
5.스 레 드 안전 이란 무엇 입 니까?
공 유 된 데 이 터 를 가 진 여러 스 레 드 를 병행 하 는 프로그램 에서 스 레 드 안전 코드 는 동기 화 체 제 를 통 해 각 스 레 드 가 정상 적 이 고 정확하게 실 행 될 수 있 으 며 데이터 오염 등 의외 의 상황 이 발생 하지 않도록 보장 합 니 다.
유추:식당 에서 모든 종업원 은 자신의 번 호 를 가지 고 있 습 니 다.예 를 들 어 제 가 방금 한 사람 을 8 번 자리 에 앉 게 했 습 니 다.그러면 저 는 당연히 다음 이 9 번 자리 라 고 생각 합 니 다.만약 에 다른 종업원 이 9 번 테이블 을 동시에 배정 하면 제 가 다시 배정 하면 데이터 가 안전 하지 않 고 문제 가 생 길 것 입 니 다.
6.스 레 드 를 만 드 는 방법
자바 스 레 드 를 만 드 는 세 가지 방법:
package thread;
/**
* @author
*/
public class ExtendThread extends Thread {
@Override
public void run() {
System.out.println("ExtendThread");;
}
}
package thread;
import java.util.concurrent.Callable;
/**
* @author
*/
public class ImpCallable implements Callable<Integer> {
@Override
public Integer call() throws Exception {
System.out.println("Callable ");
return 1;
}
}
package thread;
/**
* @author
*/
public class ImpRunnable implements Runnable {
@Override
public void run() {
System.out.println("Runnable");
}
}
package thread;
import java.util.concurrent.FutureTask;
/**
* @author
*/
public class Aain {
public static void main(String[] args) {
new ExtendThread().start();
new Thread(new ImpRunnable()).start();
new Thread(new FutureTask<>(new ImpCallable())).start();
}
}
요약:스 레 드 의 개념 은 생활 에서 비롯 되 고 개념 을 이해 하 며 프로젝트 에서 생각 할 때 프로젝트 의 스 레 드 모델 만 알 면 큰 문제 가 발생 하지 않 는 다.
이 글 은 여기까지 입 니 다.당신 에 게 도움 을 줄 수 있 기 를 바 랍 니 다.또한 당신 이 우리 의 더 많은 내용 에 관심 을 가 져 주 실 수 있 기 를 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.