今天暂停Spring-MVC的实践,捋一捋多线程。
多线程有几个印象深的东西:Thread和Runable, volatile变量,start和run,keepRunning flag等。
根据视频和网上搜罗来看的一些文章,自己搞了个程序,不过根本不在节奏上,故准备基于已经搜索到的资料重新看一遍视频,再理解一下。这里先自己列出自己不合逻辑的程序,看了视频之后自己纠正。
我想写的是一个龟兔赛跑。
Animals类,实现Runnable接口
package com.test.threadextends;
public class Animals implements Runnable {
volatile boolean keepRunning = true;
private String name;
private int step;
public Animals(String name, int step){
this.name = name;
this.step = step;
}
@Override
public void run() {
int i = 0;
while(keepRunning == true) {
System.out.println(name + " runs " + (++i));
}
if(i > step) {
keepRunning = false;
}
}
}
跑道类,继承Thread类
package com.test.threadextends;
public class Animals implements Runnable {
volatile boolean keepRunning = true;
private String name;
private int step;
public Animals(String name, int step){
this.name = name;
this.step = step;
}
@Override
public void run() {
int i = 0;
while(keepRunning == true) {
System.out.println(name + " runs " + (++i));
}
if(i > step) {
keepRunning = false;
}
}
}
主函数
package com.test.threadextends;
public class Game {
public static void main(String args[]) {
Road road = new Road();
road.start();
}
}
稀里糊涂稀里糊涂。先作记录,然后去看视频。明天再来纠错。