1.
局部变量,每个线程都有一个拷贝,而且是互不影响的.......重要!
局部变量会覆盖成员变量(临近原则)
2.
多线程的同步:
为什么要引入同步机制?
在多线程环境中,可能会有两个甚至更多的线程试图同时访问一个有限的资源。必须对这种
潜在资源冲突进行预防。
解决方法:在线程使用一个资源时为其加锁即可。访问资源的第一个线程为其加上锁以后,
其他线程不能再使用那个资源,除非被解锁。
3.死锁(互斥锁问题)
public class TestDeadLock2 {
public static void main(String[] args) {
char[] a = { 'A', 'B', 'C' };
char[] b = { 'D', 'E', 'F' };
MyThread7 t1 = new MyThread7(a, b);
MyThread7 t2 = new MyThread7(b, a);
t1.start();
t2.start();
}
}
class MyThread7 extends Thread {
private char[] source;
private char[] dest;
public MyThread7(char[] source, char[] dest) {
this.source = source;
this.dest = dest;
}
public void run() {
synchronized (source) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (dest) {
// 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
System.arraycopy(source, 0, dest, 0, source.length);
System.out.println(dest);
}
}
}
}