一個 Process 可以有多個 Thread
同一個 Process 內的 Thread 使用相同的 Memory Space,但這些 Thread 各自擁有其 Stack。
換句話說,Thread 能透過reference存取到相同的Object,但是local variable卻是各自獨立的。
作業系統會根據 Thread 的優先權以及已經用掉的 CPU 時間,在不同的 Thread 作切換,以讓各個Thread 都有機會執行。
对于线程常用的操作有:wait(等待)、notify(唤醒)、notifyAll、sleep(睡眠)、join(阻塞)、yield(礼让)
wait、notify、notifyAll都必须在synchronized中执行,否则会抛出异常
synchronized 关键字和 ReentrantLock 锁都是辅助线程同步使用的
初学者常犯的误区:一个对象只有一个锁(正确的)
No comments:
Post a Comment