Go Concurrent Programming
chao.cai@mobvista.com
QCon2018 Beijing
Shared Memory Model
Shared
Memory
Model
class Worker implements Runnable{
private volatile boolean isRunning = false;
@Override
public void run() {
}
while(isRunning) {
//do something
}
}
Lock lock = ...;
lock.lock();
try{
//process (thread-safe)
}catch(Exception ex){
}finally{
lock.unlock();
}
CSP
Tony Hoare
Actor Model
Channel