java学习总结——第十七天

今天是一些线程问题:

1个进程有多个线程

并行:同时运行,齐头并进

并发:在一定时间范围内共同运行

线程只能启动一次 start()方法

public class SynchronizedDemo implements Runnable {
static Object o = new Object();
public static void main(String[] args) {
SynchronizedDemo s = new SynchronizedDemo();
Thread t1 = new Thread(s);
Thread t2 = new Thread(s);

t1.start();
t2.start();
}


@Override
public  void run() {
// TODO Auto-generated method stub

synchronized(o){
o.notifyAll();
for(int i = 1;i<=10;i++){
System.out.println(Thread.currentThread().getName()+"..."+i);
if(i==5){
try {
o.wait();  //进入阻塞状态(等待池),不执行下调语句,直到被唤醒后继续向下执行

o.notifyAll();

} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
}
}
}

然后就主要编写线程问题里面典型的消费者和生产者的问题

主要用到 同步锁(synchronized)

你可能感兴趣的:(java学习总结——第十七天)