CodeGym University
학습
강좌
과제
설문조사 및 퀴즈
게임
도움말
학습 재촉 스케줄
커뮤니티
사용자
포럼
채팅
기사
성공 사례
활동
리뷰
구독
옅은 색 테마
레슨
리뷰
회사 소개
시작
학습 시작
지금 학습을 시작하십시오
탐구 맵
레슨
모든 탐구
모든 레벨
새 스레드 생성 및 시작
모듈 2: 자바 코어
레벨 11,
레슨 1
"안녕하세요, 아미고! Ellie가 스레드에 대해 말했고 스레드를 사용하는 방법을 알려드리겠습니다. 새 스레드를 만들려면 다음을 수행해야 합니다." 1) 스레드 객체 생성 2) 실행하려는 메소드를 전달하십시오. 3) 생성된 Thread 객체에서 start 메소드를 호출합니다. 다음 예를 고려하십시오. 암호 설명 class Printer implements Runnable
건강한 수면
모듈 2: 자바 코어
레벨 11,
레슨 2
"안녕하세요, 아미고! 오늘 Bilaabo는 스레드로 작업 할 때 사용하는 가장 흥미로운 메서드인 sleep 에 대해 알려드릴 것입니다 . sleep 메서드는 Thread 클래스의 정적 메서드로 선언됩니다 . 즉, 어떤 개체에도 연결되지 않습니다. 목적은 이 방법은 프로그램을 잠시 동안 «잠들게» 만드는 것입니다 . 작동 방식은 다음과 같습니다." 암호 설명 public static void main(String[] args)
스레드 중지: 비공식 버전
모듈 2: 자바 코어
레벨 11,
레슨 3
"안녕하세요, 아미고! 이미 가지고 있거나 곧 할 흥미로운 질문이 있습니다. 실행 중인 스레드를 어떻게 중지합니까? " 사용자가 프로그램에 "인터넷에서 파일을 다운로드"하라고 지시한다고 가정해 보겠습니다. 기본 스레드는 이 작업에 대해 별도의 자식 스레드를 만들고 파일을 다운로드하는 데 필요한 모든 작업이 포함된 실행 메서드의 개체를 전달합니다. 그러나 갑자기 사용자가 마음을 바꿉니다. 그는 파일을 다운로드하고 싶지 않습니다.
스레드 중지: 공식 버전
모듈 2: 자바 코어
레벨 11,
레슨 4
"안녕하세요, 아미고! Ellie의 취소 아이디어가 훌륭했음을 인정해야 합니다." "네." "실제로 비슷한 것이 Thread 클래스에 존재합니다. 변수만 isCancel 이라고 하지 않습니다. isInterrupt 라고 합니다 . 그리고 스레드를 중지하는 데 사용되는 메서드는 cancel() 이 아닙니다 . interrupt() 입니다 ." "정말?" "예. 확인해보세요." 암호 설명 class Clock implements
레벨별 추가 레슨
모듈 2: 자바 코어
레벨 11,
레슨 5
멀티스레딩: Thread 클래스의 메서드 이 단원에서는 계속해서 멀티스레딩에 대해 설명합니다. Thread 클래스와 여러 메서드가 작동하는 방식을 살펴보겠습니다 . 이전에 클래스 메서드를 연구할 때 일반적으로 "메서드 이름" -> "메소드가 수행하는 작업"과 같이 작성했습니다. Thread 클래스 의 메서드에 대해서는 그렇게 할 수 없습니다. :) 몇 가지 예제 없이는 알아낼 수 없는 더 복잡한 논리가 있습니다. 기사 선택:
다중 스레드 문제: 공유 리소스 액세스
모듈 2: 자바 코어
레벨 12,
레슨 0
"안녕하세요, 아미고! 어제 우리는 멀티스레딩의 장점과 편리함에 대해 논의했습니다. 이제 단점을 살펴볼 차례입니다. 그리고 불행히도 그것들은 작지 않습니다." 이전에 우리는 프로그램을 서로의 메서드를 호출하는 개체 집합으로 보았습니다. 이제 모든 것이 조금 더 복잡해집니다. 프로그램은 여러 개의 "작은 로봇"(스레드)이 크롤링하고 메서드에 포함된 명령을 실행하는 개체 집합과 비슷합니다. 이 새로운 해석은 첫 번째 해석을 취소하
스레드는 독립적이지 않습니다! 동기화!
모듈 2: 자바 코어
레벨 12,
레슨 1
"안녕하세요, 아미고! 만병통치약이 있습니다. 만병통치약입니다. 이미 살펴보았듯이 제어되지 않은 스레드 전환이 문제입니다." "스레드가 다음 스레드로 전환할 시기를 스스로 결정할 수 없는 이유는 무엇입니까? 필요한 모든 작업을 수행한 다음 «완료했습니다!»라고 신호를 보내야 합니까?" "스레드 자체가 전환을 제어하도록 허용하는 것은 훨씬 더 큰 문제가 될 것입니다. 잘못 작성된 코드가 있고 스레드가 CPU를 포기하지 않는다고
로컬 캐시: 멀티스레딩 문제. 휘발성 물질
모듈 2: 자바 코어
레벨 12,
레슨 2
"안녕하세요, 아미고! 여러 스레드가 공유 리소스에 동시에 액세스하려고 할 때 발생하는 문제에 대해 Ellie가 말한 것을 기억하십니까?" "예." "문제는 그것이 전부가 아니라는 것입니다. 또 다른 작은 문제가 있습니다." 아시다시피 컴퓨터에는 데이터와 명령(코드)이 저장되는 메모리와 이러한 명령을 실행하고 데이터로 작업하는 프로세서가 있습니다. 프로세서는 메모리에서 데이터를 읽고 변경한 다음 다시 메모리에 씁니다. 계산 속
양보 (통행권 양도)
모듈 2: 자바 코어
레벨 12,
레슨 3
"안녕하세요, 아미고! 오늘은 짧지만 재미있는 수업을 하도록 하겠습니다. Thread 클래스의 정적 메서드인 yield 에 대해 말씀드리려고 합니다 ." Ellie는 이미 프로세서가 스레드 사이를 지속적으로 전환한다고 말했습니다. 각 스레드에는 퀀텀 이라고 하는 작은 프로세서 시간이 할당됩니다 . 이 시간이 만료되면 프로세서는 다른 스레드로 전환하고 명령 실행을 시작합니다. 호출하면 Thread.yield()현재 스레드의 양자
조인 — 스레드가 끝나기를 기다림
모듈 2: 자바 코어
레벨 12,
레슨 4
"안녕하세요, 아미고! 스레드에 대해 배우는 데 큰 진전을 이루고 있는 것 같습니다." "결국 그렇게 어렵지는 않았어요." 대단해! 오늘은 쉬운 수업이 있으며 주제는 조인 방법입니다. 다음과 같은 상황을 상상해 보십시오. 메인 스레드가 일부 작업을 수행하기 위해 하위 스레드를 생성했습니다. 시간이 흐르고 이제 메인 스레드는 자식 스레드가 수행한 작업의 결과가 필요합니다. 그러나 하위 스레드는 아직 작업을 완료하지 않았습니다.
DeadLock 및 그 원인
모듈 2: 자바 코어
레벨 12,
레슨 5
"안녕, 아미고!" "오늘은 교착 상태가 무엇인지 알려 드리겠습니다." "이봐, 당신은 이미 그런 것에 대해 나에게 말했다." "예, 그랬습니다. 하지만 오늘은 그 주제를 더 자세히 살펴보겠습니다." "가장 간단한 경우 교착 상태에는 두 개의 스레드와 두 개의 뮤텍스 개체가 포함됩니다. 다음과 같은 경우 상호 잠금이 발생합니다." A) 각 스레드는 두 뮤텍스를 획득해야 합니다. B) 첫 번째 스레드가 첫 번째 뮤텍스를 획득했으
deadLock을 피하기 위한 전략
모듈 2: 자바 코어
레벨 12,
레슨 6
"안녕, 아미고!" "교착 상태를 피하기 위한 몇 가지 전략에 대해 말씀드리고 싶습니다." "가장 좋은 전략은 사려 깊은 아키텍처와 잠금을 사용할 수 있는 시기와 순서(뮤텍스 획득)를 관리하는 일련의 규칙입니다. 문제에 대한 고전적인 접근 방식은 잠금 계층을 개발하고 특정 잠금이 절대 해제될 수 없는 규칙을 설정하는 것입니다. 특정 다른 잠금이 이미 획득된 상태에서 획득되었습니다." "예를 들어 잠금에 레벨이 할당되는 경우가
더 보기
1
...
17
18
19
20
21
...
35
Please enable JavaScript to continue using this application.