1. python多线程的实现方式:
- 继承Thread类
- 实现Runnable接口
Callable接口+FutureTask包装器来创建Thread线程
线程操作涉及到的方法:
Thread:start启动 join加入新线程
Lock/Rock:acquire():加锁 release(): 释放锁
Condition:acquire():加锁 release(): 释放锁 wait notify notify_all
Event: set()等同于notify_all clear() 取消notify_all
time: sleep
timer:Timer(interval function args=[] kwargs={})interval: 指定的时间
- function: 要执行的方法
- args/kwargs: 方法的参数
2.Java多线程的实现方式:
- 继承Thread类实现多线程
- 实现Runnable接口方式实现多线程
- 通过 Callable 和 Future 创建线程。
线程操作涉及到的方法:
start() 、stop() (过时) 、join() 、wait() 、sleep() 、notify() 、notifyAll()
Java多线程方法详解
经典案例
共有四个和尚
其中一个和尚负责做馒头
其他三个和尚吃馒头
要求
当做馒头的时候,不能吃馒头
当吃馒头的时候不能做馒头
馒头上线只能是30个
在吃馒头的时候不能出现一个馒头被多个和尚吃
不能出现吃的时候和尚吃出异常(如一个和尚永远也吃不到,或者 一个和尚吃了一个不存在的馒头)
Java代码:
package com.dsj101.thread;
import java.util.ArrayList;
import java.util.List;
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();