目录
一、线程同步
二、生产者消费者
一、线程同步
package demo02;
public class Demo05Ticket {
public static void main(String[] args) {
RunnableImpl run= new RunnableImpl();
Thread t0= new Thread(run);
Thread t1= new Thread(run);
Thread t2= new Thread(run);
t0.start();
t1.start();
t2.start();
}
}
package demo02;
public class demo01Ticket {
public static void main(String[] args) {
Runnablempl run= new Runnablempl();
Thread t0= new Thread(run);
Thread t1= new Thread(run);
Thread t2= new Thread(run);
t0.start();
t1.start();
t2.start();
}
}
二、生产者消费者
package demo03;
/*
* 等待唤醒案例:
* 创建一个顾客线程:告知老板要的包子的种类,用wait()方法等待,放弃cpu执行,
* 创建一个老板线程:花五秒做一个包子,做好过后,用notif通知顾客吃包子
*
*
*
*
*
*/
public class demo03WatiAndNo {
public static void main(String[] args) {
Object obj= new Object();
//创建第一个消费者
new Thread() {
public void run() {
while(true) {
synchronized(obj) {
System.out.println("恩");
try {
obj.wait();
}catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("嗯");
System.out.println("======================");
}
}
}
}.start();
new Thread() {
public void run() {
while(true) {
try {
Thread.sleep(2000);
}catch(InterruptedException e) {
e.printStackTrace();
}
synchronized (obj) {
System.out.println("恩");
obj.notify();
}
}
}
}.start();
}
}
2020080605004