前两天学习了有关
线程的知识。唯一做过的有关线程的东西只是让一个小球在界面上动起来。就以这一点点知识,我来浅谈一下对于线程的
理解。
以前我们接触的程序,都是单线程的,什么是单线程呢,就是程序运行的时候,所有的模块都有先后次序,例如我在这个方法里调用了方法一,然后又调用了方法二,那么程序运行的时候必须要先运行方法一,方法一运行结束才能运行方法二。大一上就是这样。但是用了多线程就可以同时运行多个,当然这里的同时也同样是有先后次序的,启动是同时启动,结果可能有稍微的先后。
写线程,首先要继承线程类(Thread类),然后在此类中重写run方法,在需要此线程的地方调用
thread类的start方法。
public void run(){
while(true){
//每次开始画球之前,用底色绘制一遍球,使之“隐身”
g.setColor(Color.LIGHT_GRAY);
g.fillOval(x, y, size, size);
g.setColor(color);
x+=movex; //x,y是小球的初始坐标
y+=movey;
g.fillOval(x, y, size, size);
//设置延时,要不然会一下就过去了,看不到
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
在
主界面类中调用启动线程的就没有贴出来了,直接在窗口属性之后实例化写线程的这个类,再.start();就可以。