一、线程实现方式:
1.继承Thread类
2.实现Runnable接口
3.实现Callable+FutureTask接口
线程操作涉及到的方法
start:线程对象的方法
sleep:普通对象的方法
join:线程对象的方法
wait:普通对象的方法
notify:普通对象的方法
notifyAll:普通对象的方法
实例:
共有四个和尚
其中一个和尚负责做馒头
其他三个和尚吃馒头
要求
当做馒头的时候,不能吃馒头
当吃馒头的时候不能做馒头
馒头上线只能是30个
在吃馒头的时候不能出现一个馒头被多个和尚吃
不能出现吃的时候和尚吃出异常来(如一个和尚永远也吃不到,或者一个和尚吃了一个不存在的馒头)
1.继承Thread类
2.实现Runnable接口
3.实现Callable+FutureTask接口
线程操作涉及到的方法
start:线程对象的方法
sleep:普通对象的方法
join:线程对象的方法
wait:普通对象的方法
notify:普通对象的方法
notifyAll:普通对象的方法
实例:
共有四个和尚
其中一个和尚负责做馒头
其他三个和尚吃馒头
要求
当做馒头的时候,不能吃馒头
当吃馒头的时候不能做馒头
馒头上线只能是30个
在吃馒头的时候不能出现一个馒头被多个和尚吃
不能出现吃的时候和尚吃出异常来(如一个和尚永远也吃不到,或者一个和尚吃了一个不存在的馒头)
package com.dsj101.thread;
import java.util.ArrayList;
import java.util.List;
/**
* Created by seal on 2017/6/25.
*/
public class Test {
static class ManTou{
private int num;
public ManTou(int num) {
this.num = num;
}
@Override
public String toString() {
return "第"+num+"个";
}
}
public static List<ManTou> manTous=new ArrayList<>();
public static void main(String[] args) {
new HuoFu("大头和尚").start();
new ChiHuo("白眉和尚").start();
new ChiHuo("牛鼻子和尚").start();
new ChiHuo("花和尚").start();
}
//火夫
static class HuoFu extends Thread{
private String name;
public HuoFu(String name) {
this.name = name;
}
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {