c24165b8bc
에이전트 8종(대화형/프로그래머 C·S/디자이너/설계자/기획자/QA/PD/PM)에게 [공통 기본 능력 + 롤별 Specialty] 2층으로 지식을 주입하기 위한 재분류. 문서 내용·포맷은 무수정, 폴더 이동만 (6,372개 문서 수 보존 확인). - Topic_Programming → Domain_Programming (내부 구조 보존) - Topic_Graphic → Domain_Design - Topic_Business → Domain_Product - Topic_General → Domain_General - _Common 신설: Math(구 Topic_Math_Specialty), Reasoning(구 General/From_Thinking & Reasoning), Reasoning_Creativity(구 General/From_창의성), Communication(Poetic_Blog_Writing + From_writing) - 타 도메인의 From_* 폴더는 유지 (출처 표기일 뿐, 이미 도메인에 맞게 분류된 문서) - 빈 폴더 정리 (memory/procedures) - 에이전트→폴더 매핑은 workspace의 .astra/agent-knowledge-map.json (9개 에이전트) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4.1 KiB
4.1 KiB
id, title, category, status, verification_status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, created_at, updated_at, review_reason, merge_history, tags, raw_sources, applied_in, github_commit
| id | title | category | status | verification_status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | created_at | updated_at | review_reason | merge_history | tags | raw_sources | applied_in | github_commit | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| java-threads | Java Threads | Programming_Language | draft | conceptual |
|
B | 0.88 | 2026-07-04 | 2026-07-04 |
|
|
Java Threads
🎯 한 줄 통찰 (One-line insight)
Extending Thread blocks you from extending any other class (Java has single inheritance), so implementing Runnable is the more flexible option specifically because it lets you write class MyClass extends OtherClass implements Runnable — the choice between the two thread-creation methods is really a choice about whether you need that inheritance slot for something else. [S1]
🧠 핵심 개념 (Core concepts)
- Two ways to create a thread — extend
Threadand overriderun(), or implementRunnableand pass an instance tonew Thread(obj). [S1] .start()— begins running the thread (not callingrun()directly). [S1]- Extend vs. implement trade-off — extending Thread blocks further inheritance; implementing Runnable allows extending another class too. [S1]
- Concurrency problems — since threads run in unpredictable order relative to the main program, shared variables can produce unpredictable values. [S1]
isAlive()— checks if a thread is still running; used to wait for a thread to finish before touching shared state. [S1]
📖 세부 내용 (Details)
- Extend Thread:
public class Main extends Thread { public void run() { System.out.println("This code is running in a thread"); } } ... Main thread = new Main(); thread.start();. [S1] - Implement Runnable:
public class Main implements Runnable { public void run() {...} } ... Main obj = new Main(); Thread thread = new Thread(obj); thread.start();. [S1] - Concurrency problem example:
public static int amount = 0; ... thread.start(); System.out.println(amount); amount++; ... // run() { amount++; } — order/value unpredictable. [S1] - Safe wait via isAlive():
while(thread.isAlive()) { System.out.println("Waiting..."); } System.out.println("Main: " + amount);. [S1]
⚖️ 모순 및 업데이트 (Contradictions & updates)
- 동시성 문제의 근본 원인: 스레드와 메인 프로그램이 같은 변수를 동시에 읽고 쓰면 값이 예측 불가능해진다는 점이 명시되고, isAlive()로 대기하는 것이 해결책으로 제시됨. [S1]
🛠️ 적용 사례 (Applied in summary)
현재 발견된 실제 적용 사례가 없습니다 — isAlive()로 스레드 완료를 기다린 후 공유 변수에 접근하는 패턴이 동시성 문제 회피의 실전 사례다. [S1]
💻 코드 패턴 (Code patterns)
Waiting for a thread with isAlive() to avoid concurrency issues (Java):
public class Main extends Thread {
public static int amount = 0;
public static void main(String[] args) {
Main thread = new Main();
thread.start();
while (thread.isAlive()) {
System.out.println("Waiting...");
}
System.out.println("Main: " + amount);
}
public void run() { amount++; }
}
✅ 검증 상태 및 신뢰도
- 상태: draft
- 검증 단계: conceptual
- 출처 신뢰도: B (W3Schools — widely used educational reference, not a primary standards body)
- 신뢰 점수: 0.88
- 중복 검사 결과: 신규 생성 (New discovery)
🔗 지식 그래프 (Knowledge Graph)
- 상위/루트: Java Tutorial
- 관련 개념: Java Interface, Java Inheritance, Java Lambda
- 참조 맥락: 병렬 실행과 동시성 문제 — 람다 표현식(Lambda) 챕터로 이어짐.
📚 출처 (Sources)
- [S1] W3Schools — Java Threads — https://www.w3schools.com/java/java_threads.asp
📝 변경 이력 (Change history)
- 2026-07-04: Initial draft synthesized from the W3Schools "Java Threads" page (Astra wiki-curation, P-Reinforce v3.1 format).