package Thread;
public class Demo5 {
static int bean=10;
public static void main(String[] args) {
Demo5 d=new Demo5();
Thread t1=new Thread("张三"){
public void run(){
for(int i=0;i<5;i++){
try {
Thread.sleep(30);
} catch (InterruptedException e) {
e.printStackTrace();
}
int num=d.getBean();
System.out.println(this.getName()+"取了一个豆子还剩"+num+"个豆子");
}
}
};
Thread t2=new Thread("李四"){
public void run(){
for(int i=0;i<6;i++){
try {
Thread.sleep(30);
} catch (InterruptedException e) {
e.printStackTrace();
}
int num=d.getBean();
System.out.println(this.getName()+"取了一个豆子还剩"+num+"个豆子");
}
}
};
t1.start();
t2.start();
}
public synchronized static int getBean(){
if(bean==0){
System.out.println("Demo5.getBean()");
throw new NullPointerException();
}
return --bean;
}
}
package Thread;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.ExecutorService;
public class Demo6 {
public static void main(String[] args) {
Thread thread=new Thread() {
public void run() {
System.out.println("我要睡觉啦");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
System.out.println("吵醒的");
e.printStackTrace();
}
System.out.println("醒了");
};
};
thread.start();
thread.interrupt();
}
}