当两个线程代码中存在临界段时,指的是有一段访问系统临界资源的代码,你不能保证线程A中的临界段的代码全部被执行完后才会执行线程B. 这时,若希望互斥,让先进去临界资源的临界段会阻止后面进入临界段的执行,用java提供的synchronized关键字。
public class Test {
public static void main(String[] args) {
Thread t1 = new Thread(new MyThread());
Thread t2 = new Thread(new Mythread2());
t1.start();
t2.start();
}
}
class MyThread implements Runnable {
public void run() {
for (int i = 0; i < 100; i++)
System.out.println("线程1");
}
}
class Mythread2 implements Runnable {
public void run() {
for(int i = 0 ; i < 100; i++)
System.out.println("线程2");
}
}
public class Test {
public static void main(String[] args) {
Thread t1 = new Thread(new MyThread());
Thread t2 = new Thread(new Mythread2());
t1.start();
t2.start();
}
}
class MyThread implements Runnable {
public synchronized void run() {
for (int i = 0; i < 100; i++)
System.out.println("线程1");
}
}
class Mythread2 implements Runnable {
public synchronized void run() {
for(int i = 0 ; i < 100; i++)
System.out.println("线程2");
}
}